W3Cschool
恭喜您成為首批注冊(cè)用戶
獲得88經(jīng)驗(yàn)值獎(jiǎng)勵(lì)
spi模塊提供了多個(gè)可工作的使用服務(wù)器編程接口 (SPI) 和觸發(fā)器的例子。盡管這些例子的價(jià)值只對(duì)它們自己合適,它們甚至更有助于作為例子來修改達(dá)到你自己的目的。這些函數(shù)足夠普通,可以與任何表一起使用,但是在創(chuàng)建一個(gè)觸發(fā)器時(shí)你必須指定表名和域名(如下所述) 。
下面描述的函數(shù)組中的每一個(gè)都作為一個(gè)獨(dú)立可安裝的擴(kuò)展被提供。
check_primary_key()
和check_foreign_key()
被用來檢查外鍵約束(當(dāng)然,這個(gè)功能很早以前被內(nèi)建的外建機(jī)制取代了,但是該模塊還是可以用作一個(gè)例子)。
check_primary_key()
檢查引用表。用法是使用這個(gè)函數(shù)在一個(gè)引用其他表的表上創(chuàng)建一個(gè)BEFORE INSERT OR UPDATE
觸發(fā)器。指定該觸發(fā)器的參數(shù)為:引用表中構(gòu)成外鍵的列名、被引用表名稱以及在被引用表中構(gòu)成主鍵/唯一鍵的列名。要處理多個(gè)外鍵,請(qǐng)為每一個(gè)引用創(chuàng)建一個(gè)觸發(fā)器。
check_foreign_key()
檢查被引用表。用法是使用這個(gè)函數(shù)在一個(gè)被其他表引用的表上創(chuàng)建一個(gè)BEFORE DELETE OR UPDATE
觸發(fā)器。指定該觸發(fā)器的參數(shù)為:該函數(shù)必須對(duì)其執(zhí)行檢查的引用表數(shù)量、找到一個(gè)引用鍵后的動(dòng)作(cascade
— 刪除引用行,restrict
—
如果引用鍵存在則中斷事務(wù),setnull
— 設(shè)置引用鍵域?yàn)榭眨⒂|發(fā)器所在表中構(gòu)成主鍵/唯一鍵的列名、引用表名稱和列名稱(第一個(gè)參數(shù)指定多少個(gè)引用表就重復(fù)多少次)。注意主鍵/唯一鍵列應(yīng)該被標(biāo)記為 NOT NULL 并且應(yīng)該有一個(gè)唯一索引。
refint.example
中有一些例子。
autoinc()
是一個(gè)將序列的下一個(gè)值存儲(chǔ)到一個(gè)整數(shù)域的觸發(fā)器。這和內(nèi)建的“序數(shù)列”特性有些重疊,但是它并不完全一樣:autoinc()
在插入時(shí)會(huì)覆蓋掉給出的不同域值,并且它可被選擇用來在更新時(shí)增加域。
用法是使用這個(gè)函數(shù)創(chuàng)建一個(gè)BEFORE INSERT
(或者BEFORE INSERT OR UPDATE
)觸發(fā)器。指定兩個(gè)觸發(fā)器參數(shù):要被修改的整數(shù)列名和將提供值的序列對(duì)象名(事實(shí)上,如果你想要更新多于一個(gè)自增列,你可以指定任意數(shù)量的這種名稱對(duì))。
在autoinc.example
中有一個(gè)例子。
insert_username()
是存儲(chǔ)當(dāng)前用戶名到一個(gè)文本域的觸發(fā)器。這有助于跟蹤是誰最后在一個(gè)表中修改了一個(gè)特定行。
用法是使用這個(gè)函數(shù)創(chuàng)建一個(gè)BEFORE INSERT
以及/或者UPDATE
觸發(fā)器。指定一個(gè)觸發(fā)器參數(shù):要被修改的文本列名。
在insert_username.example
中有一個(gè)例子。
moddatetime()
是一個(gè)存儲(chǔ)當(dāng)前時(shí)間到一個(gè)timestamp
域的觸發(fā)器。它有助于跟蹤一個(gè)表中特定行最后一次的修改時(shí)間。
用法是使用這個(gè)函數(shù)創(chuàng)建一個(gè)BEFORE UPDATE
觸發(fā)器。指定一個(gè)觸發(fā)器參數(shù):要被修改的列名。該列必須是類型timestamp
或者timestamp with time zone
。
在moddatetime.example
中有一個(gè)例子。
Copyright©2021 w3cschool編程獅|閩ICP備15016281號(hào)-3|閩公網(wǎng)安備35020302033924號(hào)
違法和不良信息舉報(bào)電話:173-0602-2364|舉報(bào)郵箱:jubao@eeedong.com
掃描二維碼
下載編程獅App
編程獅公眾號(hào)
聯(lián)系方式:
更多建議: