在MySQL中使用INSERT ... SELECT添加额外的列值

Ant*_*ony 12 mysql

我有两个表,我的目标是将第一个表中的特定数据移动到第二个表中以及移动数据的原因.例如:

raw_data_table

SELECT * FROM raw_data_table where id IS NULL;
Run Code Online (Sandbox Code Playgroud)

我想将它移动到第二个表中,除了额外的列之外,它与第一个表相同reason.我试过了:

INSERT INTO bad_data_table 
(SELECT * FROM raw_data_table WHERE id IS NULL), "The ID is NULL";
Run Code Online (Sandbox Code Playgroud)

但是这会返回语法错误.如何复制整行并添加原因值?

Cad*_*oux 28

INSERT INTO bad_data_table 
SELECT *, 'The ID is NULL' AS Reason
FROM raw_data_table
WHERE id IS NULL;
Run Code Online (Sandbox Code Playgroud)

  • 我会考虑将`*`分解为列名.否则,当有人在"Reason"表格中添加新列时,事情就会开始爆炸. (7认同)