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

SQL/SpatiaLite: How to insert a default value into certain columns when inserting data from another table?

我有一个新的 table,其中包含这些列(全部为 NOT NULL):

creation_date, created_by, attribute_1, attribute_2, geometry

我也有一个旧的table:

attribute_1, attribute_2, geometry

我想通过 INSERT INTO / SELECT / FROM 从旧 table 插入数据。然而,这显然给了我 creation_date 和 created_by 列的错误,因为旧的 table 没有任何。如何在插入旧 table?

中的行时为这些列插入默认值

您应该只选择一些文字。除非该数据存在于其他地方并且您可以通过连接查找它,否则我建议如下:

INSERT INTO newtable
SELECT date('now') as creation_date, 
'Legacy Data' as created_by, attribute_1, attribute_2, geometry
FROM oldtable

创建新属性时 table 将两个新属性设置为默认属性

创建 TABLE 新TABLE (COLUMN1 int default(X) NOT NULL, COLUMN2 int default(Y) NOTNULL, COLUMN3 int,COLUMN4 int) 这里的 X 和 Y 是将在任何 INSERT 发生时提供给列的值,它们可以在之后更新。对于 COLUMN3 和 4 数据可以从任何其他 table

插入