本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
SET CONSTRAINTS
SET CONSTRAINTS 會在目前交易中設定外部金鑰限制條件檢查的行為。
支援的語法
SET CONSTRAINTS { ALL | name [, ...] } { DEFERRED | IMMEDIATE }
說明
SET CONSTRAINTS 會在目前交易中設定限制條件檢查的行為。 IMMEDIATE限制條件會在每個陳述式的結尾進行檢查。在交易遞交之前,不會檢查DEFERRED限制條件。每個限制都有自己的 IMMEDIATE或 DEFERRED 模式。
當您建立限制條件時,您可以指派以下三種特性之一:DEFERRABLE INITIALLY DEFERRED、 DEFERRABLE INITIALLY IMMEDIATE或 NOT DEFERRABLE。第三個類別一律為 IMMEDIATE,且SET CONSTRAINTS命令不會變更它。前兩個類別會在指定的模式中啟動每個交易,但其行為可以在交易中由 變更SET CONSTRAINTS。
SET CONSTRAINTS 使用限制條件名稱清單會變更這些限制條件的模式。所有具名限制條件都必須可延遲。 會SET CONSTRAINTS ALL變更所有可延遲限制條件的模式。
當 將限制的模式從 SET CONSTRAINTS變更為 DEFERRED 時IMMEDIATE,新模式會追溯生效。Aurora DSQL 會立即檢查任何未完成的資料修改,否則會延遲到交易結束。如果違反任何此類限制,SET CONSTRAINTS命令會失敗,而且不會變更限制模式。
如需延遲性選項 (DEFERRABLE、NOT DEFERRABLE、INITIALLY DEFERRED、INITIALLY IMMEDIATE) 的說明,請參閱 可延遲性 CREATE TABLE頁面上的 。
僅限外部金鑰限制條件
在 Aurora DSQL SET CONSTRAINTS中, 僅適用於外部金鑰限制條件。插入或修改資料列時,一律會立即檢查主索引鍵、唯一NOT NULL、 和 CHECK限制條件,即使您執行 SET CONSTRAINTS ALL DEFERRED。
備註
Aurora DSQL 只會變更目前交易中限制的行為。若要使用 SET CONSTRAINTS,請在明確的交易區塊中執行它。
相容性
此命令符合 SQL 標準中定義的行為,並限制 Aurora DSQL 僅針對外部金鑰限制支援延遲。