我在某个表中有一个项目列表,我希望有另一个表格,其中包含第一个表格中的ID和其他列中的另一个常量值。
我有以下查询:
INSERT INTO table02(item_id, status, card_status) VALUES( (SELECT item_id FROM table01), -1, 10);
但它仅适用于第一行。
如何让它适用于所有行?我需要复制table01中的所有ID,并在其他列中为它们赋值-1和10。
感谢。
答案 0 :(得分:6)
INSERT INTO table02 (item_id, status, card_status) SELECT item_id, -1, 10 FROM table01;
答案 1 :(得分:3)
在ANSI SQL中,它将是:
INSERT INTO table02(item_id, status, card_status)
SELECT item_id, status, card_status FROM table01;
其中status和card_status是您的硬编码值。
...所以我猜这也适用。
答案 2 :(得分:3)
我会使用默认值创建table02
,然后只插入item_id
中的table01
。
CREATE TABLE table02 ( item_id INTEGER PRIMARY KEY,
status INTEGER DEFAULT -1,
card_status INTEGER DEFAULT 10);
INSERT INTO table02 (item_id) SELECT item_id FROM table01;