我有一个表测试它有10列,有20行。
我需要将这些数据移动到archive_test表,该表有11列(10个与测试表相同,另外一列是存档日期)。
当我试图插入如下所示的显示错误,因为列数不匹配。
insert into archive_test
select * from test;
请建议更好的方法来做到这一点。谢谢!
答案 0 :(得分:2)
嗯,很明显,您需要为所有列提供值,尽管您可以避免这样做,但您还应该明确说明要将哪个值插入到哪一列中。如果您在目标表中有一个额外的列,则可以:
例如
insert into table archive_test (col1, col2, col3 ... col11)
select col1,
col2,
col3,
...
sysdate
from test;
答案 1 :(得分:1)
假设archive_date
是最后列:
INSERT INTO archive_test
SELECT test.*, sysdate
FROM test