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
插入
我有一个新的 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
插入