我有一个问题,其中一个查询插入到表A中,它引用了表B,但它使用了表B的错误外键。是否可以在oracle中创建一个触发器,如果输入的外键是'ASDF ',我们在插入之前将其修改为'FDSA',以便我们可以解决此问题吗?
答案 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;
祝你好运。