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;