Firebird简单触发器不会被执行(死锁/并发更新)

时间:2014-07-29 11:05:03

标签: sql firebird triggers

您好我正在使用本地Firebird数据库(2.5),该数据库是以编程方式创建和处理的(我无法访问的受版权保护的应用程序的一部分)。 真正困难的是我无法改变应用程序使用的表格,更重要的是因为它的设计(空值/重复/一般坏结构)我无法设置任何外键。

我试图做的是创建一组触发器来从插入的其他表中提取数据。

例如,当应用程序使用列插入作业记录时 (JOBID,ADDRESS_ID,...) 我想从ADDRESSES表中引用说ADDRESS1 所以我试过了:

 CREATE TRIGGER JOBS_FKs FOR JOBS_SQL
ACTIVE before INSERT POSITION 0
AS 
BEGIN 
  NEW.ADDRESS1 =(SELECT FIRST 1 ADDRESS1 FROM SC_ADDRESS WHERE ADDRESS_ID=NEW.ADDRESS_ID);
END^

SELECT FIRST 1 ADDRESS1 FROM SC_ADDRESS WHERE ADDRESS_ID=NEW.ADDRESS_ID INTO NEW.ADDRESS1

UPDATE JOBS_SQL  SET...

但我总是得到:更新与并发更新的冲突 我也试图“在插入”之前“在TRANSACTION COMMIT上”无济于事

我做错了什么或触发根本不是答案?

0 个答案:

没有答案