Как скопировать одну таблицу в другую с некоторыми дополнительными данными - PullRequest
0 голосов
/ 13 февраля 2020

Я хочу скопировать столбцы из table1 в table2 с некоторыми дополнительными столбцами в table2 .

Хотя я знаю синтаксис:

INSERT INTO table2
SELECT * FROM table1
WHERE condition;

Но как я могу добавить данные дополнительного столбца в таблицу2?

Я пробовал этот подход, но он дает синтаксическую ошибку:

// first storing the desired data from table1 into a temporary table
CREATE TEMPORARY TABLE temp_table 
select column1, column2, column3 from table1 
where condition;

// then placing the selected columns into table2
INSERT INTO table2 (col1, col2, col3,col4) values (
SELECT column1 FROM temp_table, 
SELECT column2 FROM temp_table, 
SELECT column3 FROM temp_table, 
'Additional Value'
);

Ответы [ 2 ]

2 голосов
/ 13 февраля 2020

Вы можете добавить буквальную строку (или любое другое выражение) в список столбцов. Рассмотрим:

INSERT INTO table2 (col1, col2, col3,col4)
SELECT
    column1,
    column2,
    column3,
    'Additional Value'
FROM table1
1 голос
/ 13 февраля 2020

Пожалуйста, следуйте нижеследующему запросу, и вы можете использовать псевдоним в качестве дополнительного столбца: его состояние c или поле выражения: (SQL -Fiddle )

INSERT INTO table2 (col1, col2, col3, col4)
 SELECT column1, column2, column3, 'Additional Value' as column4
 FROM table1
 WHERE condition;
...