Невозможно вставить в таблицу, потому что таблица уже существует?

У меня есть таблица пользователей. Я хочу вставить данные в свою пользовательскую таблицу.

У меня есть заявление:

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...)


person glasnt    schedule 18.06.2009    source источник
comment
то, как вы это делаете, подразумевает создание таблицы   -  person BlackTigerX    schedule 18.06.2009


Ответы (4)


SELECT ... INTO предназначен для создания новых таблиц.

Используйте INSERT... SELECT для существующих таблиц. например:

INSERT INTO my_table 
SELECT columna, columnb, 
FROM my_other_table
WHERE (... conditions ...)
person Peter Radocchia    schedule 18.06.2009
comment
О, понятно... Это интересно знать. Никогда не знал, что такое можно сделать в Sybase. Здоровья, Питер. - person glasnt; 18.06.2009

Вы пробовали это таким образом?

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

Похоже, он пытается неявно создать для вас новую таблицу с именем my_table.

person Tetraneutron    schedule 18.06.2009

Не уверен в SYBASE, но в DB2 у меня это работает


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

Я думаю, что безопаснее также указать столбцы в операторе вставки, а не предполагать, что они будут в том же порядке, что и при выборе.

person MadMurf    schedule 18.06.2009

Используйте ключевое слово «существующее» после слова «в», чтобы вставить его в существующую таблицу.

SELECT [COLUMN LIST] INTO EXISTING [TABLE NAME]
person Rajesh    schedule 31.05.2016