ホームページ >データベース >mysql チュートリアル >PostgreSQL で DEFERRABLE PRIMARY/UNIQUE キー制約が実際に適用されるのはいつですか?

PostgreSQL で DEFERRABLE PRIMARY/UNIQUE キー制約が実際に適用されるのはいつですか?

DDD
DDDオリジナル
2025-01-06 09:11:40387ブラウズ

When Are DEFERRABLE PRIMARY/UNIQUE Key Constraints Actually Enforced in PostgreSQL?

遅延可能初期即時制約: 実行の強制

質問:

遅延可能 / 遅延可能/ の正確なポイントは何ですか? IMMEDIATE 一意/主キー制約は適用されますか?

回答:

著名な PostgreSQL コア開発者である Tom Lane 氏によると、現在の動作は意図されたものであり、変更されることはありません。たとえ中間ステップで違反した場合でも、コマンドの最後で制約が true に保たれていれば、制約は満たされたとみなされます。

制約強制の概要:

  • 遅延できない一意/主キー制約: それぞれの後にチェックされますrow.
  • DEFERRABLE Con​​straints (IMMEDIATE): 各ステートメントの後にチェックされます。
  • DEFERRABLE Con​​straints (DEFERRED): 各ステートメントの後にチェックされますトランザクション。

例外:

  • 延期できない一意性制約:ステートメントでは、PostgreSQL は UNIQUE/PRIMARY KEY の各コマンドの直後に一意性をチェックします。

回避策:

SQL 標準に準拠するには、制約を DEFERRABLE として宣言しますが、INITIALLY IMMEDIATE として宣言します。ただし、これは即時一意性チェックと比較してパフォーマンスに影響を与える可能性があります。

制限事項:

FOREIGN KEY 制約は DEFERRABLE 列を参照できません。これは、参照される列が非対象の列の一部である必要があるためです。 -遅延可能な一意キーまたは主キー制約。

以上がPostgreSQL で DEFERRABLE PRIMARY/UNIQUE キー制約が実際に適用されるのはいつですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。