2014-10-17 7 views
2

Скажем, у меня есть таблица, в которой есть 2 столбца одного типа и с теми же ограничениями - это 2 внешних ключа.Задайте значение по умолчанию для столбца: значение другого столбца

Теперь мне нужно было установить значение по умолчанию для столбца2 равным текущему значению столбца1. Это возможно при создании таблицы и без использования триггеров для вставки/обновления - я имею в виду, не делая это вручную?

ответ

4

значение столбца по умолчанию должно быть постоянным:

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