因为表已经存在而无法插入表中?

时间:2009-06-18 00:45:02

标签: sybase

我有一个用户表。我想将数据插入到我的用户表中。

我有一个声明:

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中永远不会发生......)

4 个答案:

答案 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]