溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

postgresql觸發(fā)器的使用方法

發(fā)布時(shí)間:2020-07-20 14:53:09 來源:億速云 閱讀:166 作者:清晨 欄目:編程語(yǔ)言

這篇文章主要介紹postgresql觸發(fā)器的使用方法,文中介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們一定要看完!

PostgreSQL觸發(fā)器是一組動(dòng)作或數(shù)據(jù)庫(kù)回調(diào)函數(shù),它們?cè)谥付ǖ谋砩蠄?zhí)行指定的數(shù)據(jù)庫(kù)事件(即,INSERT,UPDATE,DELETE或

TRUNCATE語(yǔ)句)時(shí)自動(dòng)運(yùn)行。 觸發(fā)器用于驗(yàn)證輸入數(shù)據(jù),執(zhí)行業(yè)務(wù)規(guī)則,保持審計(jì)跟蹤等。

觸發(fā)器的重點(diǎn)知識(shí):

PostgreSQL在以下情況下執(zhí)行/調(diào)用觸發(fā)器:在嘗試操作之前(在檢查約束并嘗試INSERT,UPDATE或DELETE之前)。或者在操作完成后

(在檢查約束并且INSERT,UPDATE或DELETE完成后)。或者不是操作(在視圖中INSERT,UPDATE或DELETE的情況下)

對(duì)于操作修改的每一行,都會(huì)調(diào)用一個(gè)標(biāo)記為FOR EACH ROWS的觸發(fā)器。 另一方面,標(biāo)記為FOR EACH STATEMENT的觸發(fā)器只對(duì)任

何給定的操作執(zhí)行一次,而不管它修改多少行。

您可以為同一事件定義同一類型的多個(gè)觸發(fā)器,但條件是按名稱按字母順序觸發(fā)。

當(dāng)與它們相關(guān)聯(lián)的表被刪除時(shí),觸發(fā)器被自動(dòng)刪除。

PostgreSQL創(chuàng)建觸發(fā)器:

CREATE TRIGGER語(yǔ)句用于在PostgreSQL表中創(chuàng)建一個(gè)新的觸發(fā)器。 當(dāng)表發(fā)生特定事件(即INSERT,UPDATE和DELETE)時(shí),它被激活。

語(yǔ)法:

CREATE  TRIGGER trigger_name [BEFORE|AFTER|INSTEAD OF] event_name
ON table_name
[
-- Trigger logic goes here....
];

在這里,event_name可以是INSERT,UPDATE,DELETE和TRUNCATE數(shù)據(jù)庫(kù)操作上提到的表table_name。 您可以選擇在表名后指定

FOR EACH ROW。

下面來看看看如何在INSERT操作中創(chuàng)建觸發(fā)器的語(yǔ)法。

CREATE  TRIGGER trigger_name AFTER INSERT ON column_name
ON table_name
[
-- Trigger logic goes here....
];

以上是postgresql觸發(fā)器的使用方法的所有內(nèi)容,感謝各位的閱讀!希望分享的內(nèi)容對(duì)大家有幫助,更多相關(guān)知識(shí),歡迎關(guān)注億速云行業(yè)資訊頻道!

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI