我有一个新表,包含这些列(全部为NOT NULL):
creation_date, created_by, attribute_1, attribute_2, geometry
我还有一张旧桌子:
attribute_1, attribute_2, geometry
我想通过INSERT INTO / SELECT / FROM从旧表中插入数据。但是,这显然给了creation_date和created_by列的错误,因为旧表没有任何错误。如何在插入旧表中的行时为这些colmuns插入默认值?
答案 0 :(得分:1)
你应该只选择一些文字。除非那些数据存在于其他地方并且您可以通过联接查找,我建议如下:
INSERT INTO newtable
SELECT date('now') as creation_date,
'Legacy Data' as created_by, attribute_1, attribute_2, geometry
FROM oldtable
答案 1 :(得分:1)
创建新表时,将两个新属性设置为默认属性
创建表NEWTABLE (COLUMN1 int default(X)NOT NULL, COLUMN2 int default(Y)NOTNULL, COLUMN3 int,COLUMN4 int) 这里X和Y是在任何INSERT发生时将提供给列的值,之后可以更新它们。对于COLUMN3和4,可以从任何其他表中插入数据