Вопрос по sql, sqlite – выделить в таблицу с разными именами столбцов

17

В SQLSelect into ... копирует строки в другую (резервную) таблицу. Возможно ли это, если резервная таблица имеет другую структуру (или разные имена столбцов)? Если нет, каков наилучший способ достичь этого?

Вот что я хочу сделать:TableA имеет столбцыa1,a2,a3, Я хочу скопировать некоторые строки из этой таблицы в другую таблицуTableB который имеет столбецb1,b2,b3,b4, Содержаниеa1 идти вb1, a2 вb2 и т.п.

Спасибо за точку. Я работаю над sqlite. Я не был уверен, что & quot; Выбрать в ... & quot; работает в sqlite. Я пытался только сейчас, это не работает в sqlite. Однако & quot; Вставить в .. & quot; работает для этого. zolio
Какой вкус SQL? Единственный, кого я могу найти сSELECT..INTO является MS-SQL, и документация для него подразумевает, что он создаст новую таблицу - которая всегда должна иметь & quot; правильную & quot; состав. millimoose

Ваш Ответ

1   ответ
42

column names не имеет значения, покаdata types матч.

Если типы данных столбцов не совпадают, попробуйте привести соответствующие значения.Just try с маленькими пустышками. Обязательно перечислите целевые столбцы явно, чтобы избежать путаницы. Как это:

INSERT INTO TableB (b1, b2, b3)
SELECT a1, a2, a3
FROM   TableA
WHERE <some condition>;

Подробнее в руководстве по SQLiteВот.

мы не можем сделать это без указания имен столбцов, как это ... INSERT INTO payment_reject_reasons SELECT * FROMde_list_reasons  это дает мне ошибку ...
@ user1179459: Выcan сделайте это, если типы строк совпадают. Если вы получаете сообщение об ошибке, они, очевидно, этого не делают. Также эта форма подходит только для специальных команд и особых ситуаций. Обычно вы должны указать соответствующие столбцы, поэтому команда не прервется, если вы добавите столбец в одну из таблиц. Я добавил ссылку на руководство.

Похожие вопросы