sql - 根据另一列值更新列值

标签 sql oracle

我正在研究图书馆数据库,它包含一个名为 book_transaction 的表。 有 2 列分别称为 issued_datedue_datedue_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/

相关文章:

mysql - SELECT count(*) 比 SELECT count(*) 慢两倍,MySQL 中的 some_column

MySQL 内连接命名错误?

MySql,同一个表的多列的外键

sql - 使用存储过程批量插入/更新

mysql - 选择所有相关产品

java - 是否可以从 jdbc 调用 pl/sql 函数并按名称注册返回值?

Oracle创建表作为带有最大计数条件的选择

oracle - cfqueryparam 中 Oracle 的 Number(*,0) 数据类型使用哪种 cfsqltype?

linux - 通过sh运行ddl文件

oracle - 如何确定 PL/SQL 语句中的行/值抛出错误?