你能用触发器修改插入的外键吗?

时间:2016-01-30 22:08:01

标签: mysql sql oracle triggers

我有一个问题,其中一个查询插入到表A中,它引用了表B,但它使用了表B的错误外键。是否可以在oracle中创建一个触发器,如果​​输入的外键是'ASDF ',我们在插入之前将其修改为'FDSA',以便我们可以解决此问题吗?

2 个答案:

答案 0 :(得分:1)

在MySQL或Oracle中,您可以使用before insert触发器执行此操作。

我不建议为此目的使用触发器。在我看来,修复输入数据或将新值添加到参考表是更明智的方法。

答案 1 :(得分:0)

跟进@ GordonLinoff的帖子 - 我同意(似乎是)他的观点,即触发器在这里是不合适的。但是,如果您 使用触发器,则认识到有时您必须使用您所提供的内容,并使用BEFORE INSERT触发器,如:< / p>

CREATE TRIGGER TABLE_A_BI
  BEFORE INSERT ON TABLE_A
  FOR EACH ROW
BEGIN
  IF :NEW.FK_FIELD = 'ASDF' THEN 
    :NEW.FK_FIELD = 'FDSA';
  END IF;
END YOUR_TABLE_BI;

祝你好运。