【问题标题】:Set the default value of a column: the value of another column设置一列的默认值:另一列的值
【发布时间】:2014-10-17 16:42:58
【问题描述】:

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

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

【问题讨论】:

    标签: sqlite default-value


    【解决方案1】:

    列的默认值必须是常量:

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

    【讨论】:

      猜你喜欢
      • 2016-08-03
      • 2018-09-09
      • 1970-01-01
      • 2014-12-19
      • 1970-01-01
      • 1970-01-01
      • 2022-01-08
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多