sqlite - 设置列的默认值 : the value of another column

标签 sqlite default-value

假设我有一个表,其中有 2 个相同类型且具有相同约束的列 - 它们是 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;

关于sqlite - 设置列的默认值 : the value of another column,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26417256/

相关文章:

swift - 使用默认值参数覆盖函数时,如何保持默认值与父类(super class)相同?

android - 使用 ORDER BY 在 android sqlite rawQuery 中出现问题?

apache-flex - 尝试将数据库附加到当前打开的数据库,但我收到一条错误消息,提示 ATTACH is not allowed from SQL

function - 具有未知默认参数的 Scala 函数调用

forms - 如何在 Flutter 中动态更改 initialValue

sharepoint - 我可以将自定义列表列的默认值设置为新的 Guid 吗?

java - Eclipse 项目上的多个 JDBC 文件

iphone - 如何使用 NSMutableArray 中的列名列表在 sqlite3 中创建表

python - SQLite 表名参数

null - 如何在 Spring Boot 中的 application.yml 中定义默认空值