无法插入到表,因为该表已经存在?(Cannot insert into table because

2019-07-28 22:06发布

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

我有一个说法:

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是不是我的专长,甲骨文,这可能只是一个理解的问题,或不存在的,这永远不会在甲骨文发生...)

Answer 1:

SELECT ... INTO是创建新表。

使用INSERT ... SELECT对于现有的表。 例如:

INSERT INTO my_table 
SELECT columna, columnb, 
FROM my_other_table
WHERE (... conditions ...)


Answer 2:

你已经尝试过解决这个办法吗?

Insert INTO my_table
SELECT columna, columnb, 
FROM my_other_table
WHERE (... conditions ...)

看来,它试图隐式地创建一个新的表,你叫MY_TABLE。



Answer 3:

不知道SYBASE,但在DB2这对我的作品


 INSERT INTO my_table
 (
      columna,
      columnb
 )
 SELECT
      columna,
      columnb
 FROM
      my_other_table
 WHERE
      (... conditions...)

我认为它更安全,指定在INSERT语句中的列以及不是以为他们会在同一顺序的选择。



Answer 4:

使用现有的“关键字后“变成”在现有的表中插入。

SELECT [COLUMN LIST] INTO EXISTING [TABLE NAME]


文章来源: Cannot insert into table because the table already exists?
标签: sybase