2013-10-17 97 views
0

我正在使用PostgreSQL 9.2,我需要編寫一個INSERT語句,它將表A中的數據複製到表B,而不觸發表B上定義的INSERT觸發器(可能是某種批量插入操作??)。不觸發INSERT觸發器的INSERT語句

在這個特定的表(表B)上執行了許多INSERT,UPDATE和DELETE操作。在每次執行過程中,都必須觸發觸發器。

由於標準的日常DML操作,我不能臨時禁用觸發器。

任何人都可以幫我用這個非觸發INSERT語句的語法嗎?

回答

1

以不同的用戶身份運行「特權」插入。這樣你的觸發器可以檢查當前用戶並退出,如果它不應該做任何事情。

+0

然後你需要給我們一個暗示,「正常」插入和「特殊」插入之間有什麼不同。 –

+0

由於觸發了其他插入,因此標準插入必須觸發觸發器。這個「特殊插入」僅用於表格。 問題是同一用戶(來自同一應用程序)必須執行「標準」和「特殊」插入。 我想知道是否有任何方式讓同一個用戶執行插入,但有些是'正常'(觸發器會觸發),有些不是(觸發器不會觸發)。 –

+0

我會再試一次。什麼是兩種類型的插入不同?如果您打印了兩個查詢並將它們顯示給我,我將如何分辨哪個是哪個? –