0
我有一個包含觸發器的sql文件。我想用Ant腳本來執行這個文件:db2使用ant腳本執行觸發器
<target name="exec-sql-proc_db2" depends="init">
<property name="project.sql.dir" value="${project.metadata.dir}/sql" />
<property name="triggerFile" value="${project.sql.dir}/triggers_db2.sql" />
<echo message="${triggerFile}" />
<sql rdbms="DB2" driver="com.ibm.db2.jcc.DB2Driver"
url="jdbc:db2://localhost:50000/project:currentSchema=mySchema;"
userid="root" password="root"
classpath="C:\projects\myProject\lib\db2jcc.jar"
src="${triggerFile}"
onerror="${sql.onerror}"
keepformat="true" delimiter="/" />
</target>
我得到構建成功,但觸發器沒有執行! 有沒有其他解決方案?
我的觸發是:
CREATE or REPLACE TRIGGER PRODUCT_HISTORY_AFTER_UPDATE
AFTER UPDATE ON PRODUCT
REFERENCING NEW AS N
FOR EACH ROW
BEGIN
INSERT INTO productHistory (id_h, id_product , name) values (id_h_seq.nextval, N.id_product , N.name);
END
/
你是什麼意思與「*觸發器不執行*」?觸發器僅在相應的DML(插入,更新,刪除)語句運行時才「執行」。 –
我在一個名爲product的表上有一個觸發器,當我更新這個產品中的一行時,我插入到product_history中, 這個觸發器保存在一個文件中,我用這個腳本來執行觸發器, 然後當我更新一行在表格產品中,表格中沒有插入任何行product_history – junior
您是否檢查了觸發器是否實際創建?你檢查觸發器是否啓用/有效/有效?發佈觸發器的完整代碼和您使用的DML語句。 –