SQL / SpatiaLite:如何在从另一个表插入数据时将默认值插入某些列?

时间:2015-07-06 13:24:50

标签: sql default sql-insert spatialite

我有一个新表,包含这些列(全部为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插入默认值?

2 个答案:

答案 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,可以从任何其他表中插入数据