W3Cschool
恭喜您成為首批注冊用戶
獲得88經(jīng)驗值獎勵
下列規(guī)則主導(dǎo)了使用 SPI 的函數(shù)(或者任何其他 C 函數(shù))中數(shù)據(jù)改變 的可見性:
在一個 SQL 命令的執(zhí)行期間,該命令所作的任何數(shù)據(jù)更改對該命令本身 是不可見的。例如,在
INSERT INTO a SELECT * FROM a;
中,被插入的行對SELECT
部分不可見。
一個命令 C 所作的更改對所有在 C 之后開始的命令可見,不管它們是否 在 C 之中(在 C 的執(zhí)行期間)開始還是在 C 完成之后開始。
在一個 SQL 命令(或者一個普通函數(shù)或者觸發(fā)器)調(diào)用的函數(shù)內(nèi)通過 SPI 執(zhí)行的命令遵循以上哪條規(guī)則取決于傳遞給 SPI 的讀/寫標(biāo)志。以 只讀模式執(zhí)行的命令遵循第一條規(guī)則:它們不能看到調(diào)用它們的命令的 改變。在讀寫模式中執(zhí)行的命令遵循第二條規(guī)則:它們能看見目前為止 所有的改變。
所有的標(biāo)準(zhǔn)過程語言會基于函數(shù)的易變性屬性設(shè)置 SPI 讀寫模式。 STABLE
和IMMUTABLE
函數(shù)的命令會以 只讀模式完成,而VOLATILE
函數(shù)的命令會以讀寫模式 完成。雖然 C 函數(shù)的作者可以違反這種習(xí)慣,但是最好不要那樣做。
下一節(jié)包含一個關(guān)于這些規(guī)則應(yīng)用的例子:
Copyright©2021 w3cschool編程獅|閩ICP備15016281號-3|閩公網(wǎng)安備35020302033924號
違法和不良信息舉報電話:173-0602-2364|舉報郵箱:jubao@eeedong.com
掃描二維碼
下載編程獅App
編程獅公眾號
聯(lián)系方式:
更多建議: