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

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

У меня есть утверждение:

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

Ответ 1

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

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

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

Ответ 2

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

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

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

Ответ 3

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


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

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

Ответ 4

Используйте "существующее" ключевое слово после "в" для вставки в существующую таблицу.

SELECT [COLUMN LIST] INTO EXISTING [TABLE NAME]