我有一个用户表。我想将数据插入到我的用户表中。
我有一个声明:
SELECT columna, columnb,
INTO my_table
FROM my_other_table
WHERE (... conditions ...)
我收到以下错误:
SQL Server Error on (myserver) Error:2714 at Line:1 Message:There is already an object named 'my_table' in the database.
是的,谢谢Sybase。我知道这个。我知道桌子存在。我想在其中插入数据。
为什么Sybase不能很好地播放? :(
(Sybase不是我的强项,Oracle是。这可能只是一个理解问题,或者缺乏。这在Oracle中永远不会发生......)
答案 0 :(得分:22)
SELECT ... INTO用于创建新表。
对现有表使用INSERT ... SELECT。例如:
INSERT INTO my_table
SELECT columna, columnb,
FROM my_other_table
WHERE (... conditions ...)
答案 1 :(得分:4)
你有没有尝试过这种方式?
Insert INTO my_table
SELECT columna, columnb,
FROM my_other_table
WHERE (... conditions ...)
它似乎正在尝试为您隐式创建一个名为my_table的新表。
答案 2 :(得分:1)
不确定SYBASE但在DB2中这对我有用
INSERT INTO my_table
(
columna,
columnb
)
SELECT
columna,
columnb
FROM
my_other_table
WHERE
(... conditions...)
我认为在insert语句中指定列也更安全,而不是假设它们与select的顺序相同。
答案 3 :(得分:0)
在'into'之后使用'existing'关键字插入现有表格。
SELECT [COLUMN LIST] INTO EXISTING [TABLE NAME]