Joã*_*ues 2 sqlite default-value
假设我有一个表,其中有两个相同类型且具有相同约束的列 - 它们是2个外键.
现在我需要将column2的默认值设置为等于column1的当前值.这可能是在创建表并且不使用触发器进行插入/更新时 - 我的意思是不手动操作吗?
列的默认值必须是常量:
> CREATE TABLE t(x, y DEFAULT (x));
Error: default value of column [y] is not constant
Run Code Online (Sandbox Code Playgroud)
这样的默认值需要一个触发器:
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;
Run Code Online (Sandbox Code Playgroud)