我有两张桌子,需要将一张复制到另一张INSERT INTO tbl_new SELECT FROM tbl_old
他们都有 3 个完全相同的列,但 tbl_new 有第 4 列称为“类型”我如何在同一个查询中填充它。
我需要从 tbl_old 复制行并将值分配给单元格“类型”
INSERT INTO tbl_new SELECT FROM tbl_old, (type) values (floor(rand() * 10))
不工作
Saytbl_old
有两列和tbl_new
三列
tbl_old
colA | colB
tbl_new
colA | colB | colC
假设您想用 colA 和 colB 值的总和填充 colC。你可以使用这个:
INSERT INTO tbl_new (colA, colB, colC) SELECT colA,colB,(colA+colB) FROM tbl_old;
在您的示例中:
INSERT INTO tbl_new (colA, colB, colC) SELECT colA,colB,floor(rand()*10) FROM tbl_old;
试试下面:
INSERT INTO tbl_new (column1,column2,column3,type)
SELECT column1,column2,column3,floor(rand() * 10) FROM tbl_old
注意:将 column1,column1.column3 替换为您的列名。
上面的这些答案是正确的,但是想象一下,如果除了额外的列之外一切都相同,那么写出列所花费的时间。
如果表的顺序相同且末尾有附加列,则这是一个更简洁的查询:
INSERT INTO tbl_new SELECT *, floor(rand()*10) FROM tbl_old;