我正在研究图书馆数据库,它包含一个名为 book_transaction 的表。
有 2 列分别称为 issued_date
和 due_date
。 due_date
应为 issued_date
起 7 天。我可以在创建表时使用 default
关键字指定此条件吗?
如果不可能,请留下相同的替代方案。
谢谢你,
最佳答案
Oracle default
约束不能引用其他列。您可以使用触发器获得相同的功能(参见 this answer):
CREATE TRIGGER book_transaction_trigger
BEFORE INSERT ON book_transaction
FOR EACH ROW
BEGIN
IF :new.due_date IS NULL THEN
:new.due_date := :new.issued_date + 7;
END IF;
END book_transaction_trigger;
您可以通过向日期
添加数字来添加日期。
关于sql - 根据另一列值更新列值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34508910/