2
假设我有一个表,其中有两列相同类型且具有相同约束的列 - 它们是2个外键。设置列的默认值:另一列的值
现在我需要将column2的默认值设置为等于column1的当前值。这是可能的创建表,并没有使用触发器插入/更新 - 我的意思是没有手动做?
假设我有一个表,其中有两列相同类型且具有相同约束的列 - 它们是2个外键。设置列的默认值:另一列的值
现在我需要将column2的默认值设置为等于column1的当前值。这是可能的创建表,并没有使用触发器插入/更新 - 我的意思是没有手动做?
列的默认值必须是常量:
> CREATE TABLE t(x, y DEFAULT (x));
Error: default value of column [y] is not constant
这样的缺省值将需要一个触发:
CREATE TRIGGER default_y_from_x
AFTER INSERT ON t
FOR EACH ROW
WHEN NEW.y IS NULL
BEGIN
UPDATE t SET y = NEW.x WHERE rowid = NEW.rowid;
END;