【问题标题】:Auto cascade update of values in Table表中值的自动级联更新
【发布时间】:2011-11-18 08:42:56
【问题描述】:

tableB更新时是否可以自动更新tableA中的一行?

例如:

Create TableA
(
  examno number not null,
  hourscompleted,
  Constraint examno number_PK PRIMARY KEY(examno number)
  CONSTRAINT hourscompleted_FK FOREIGN KEY (hourscompleted_FK) 
  REFERENCES tableB (endtime-  startime) 
  ON Update CASCADE
)

Create TableB
(
  Indexno not null
  starttime date,
  endtime date,
  Constraint INDEXNO_PK Primary Key (Indexno)
)

其次,我可以这样引用它tableB(结束时间-开始时间)吗?

【问题讨论】:

    标签: sql oracle date time insert


    【解决方案1】:

    听起来你想要触发器。您没有提及您正在使用哪个数据库,但您用oracle 标记了您的问题。

    Here 是有关 Oracle 中编码触发器的一些文档。他们应该允许你做你所要求的。

    我不明白你的第二个问题。

    【讨论】:

    • 我的第二个问题是是否可以创建您的外键并将其引用到 (endtime-starttime)。我正在使用 oracle sql 开发人员。
    • 那么基于 endtime 和 starttime 之间的差异的连接键之类的东西?我不知道你会怎么做。
    • 是的。有什么办法吗?
    • 您可以使用开始时间和结束时间创建复合键。但这不会是差异的计算。它只是将用作键的开始时间和结束时间的组合。 (也就是说,如果 Oracle 甚至允许日期作为键。我不确定。)orafaq.com/wiki/Composite_key
    • 不是这样,但谢谢。我会试试触发器,看看它是否有效。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-09-23
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多