设置列的默认值:另一列的值

时间:2014-10-17 03:06:24

标签: sqlite default-value

假设我有一个表格,其中有两个相同类型且具有相同约束的列 - 它们是2个外键。

现在我需要将column2的默认值设置为等于column1的当前值。是否可以在创建表格时使用并且不使用触发器进行插入/更新 - 我的意思是不手动执行它?

1 个答案:

答案 0 :(得分:8)

列的默认值必须是常量:

> 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;