[解決済み] NOT DEFERRABLE vs DEFERRABLE INITIALLY IMMEDIATE(非消耗品)。
2022-10-01 20:07:46
質問
SQL キーワードについて、次のような記事を読みました。
DEFERRABLE
で
データベースシステム - 完全版
.
後者は [延期できない] はデフォルトで、データベースの修正文が実行されるたびに、その修正が外部キー制約に違反する可能性がある場合、その直後に制約がチェックされることを意味します。
しかし、もし私たちがある制約を DEFERRABLE と宣言すれば、制約をチェックする前にトランザクションが完了するまで待機させるというオプションがあります。
私たちはキーワード DEFERRABLE のどちらかで 最初は延期 または 当初は即時 . 前者の場合、チェックは各トランザクションがコミットする直前まで延期されます。後者の場合、チェックは各ステートメントの直後から行われます。
どのように
NOT DEFERRABLE
とは異なり
DEFERRABLE INITIALLY IMMEDIATE
? どちらの場合も、個々のステートメントの後で制約がチェックされるようです。
どのように解決するのですか?
とは
DEFERRABLE INITIALLY IMMEDIATE
を使えば、必要なときに必要な分だけ制約を繰り延べることができます。
これは、通常はステートメント時に制約をチェックしたいが、例えば、バッチロードのために、コミット時までチェックを延期したい場合に便利です。
制約を延期する構文は、様々なDBMSで異なっています。
とは
NOT DEFERRABLE
を使うと、コミット時までチェックを先延ばしにすることは決してできません。
関連
-
MHAクラスタエラーサマリーの構築
-
[解決済み] SELECT ... FOR UPDATEはいつ使う?
-
[解決済み] SQL ServerでSELECTからUPDATEする方法とは?
-
[解決済み] 複数の列でgroup byを使用する
-
[解決済み] SQL Serverでレコードを削除した後、IDシードをリセットする。
-
[解決済み] T-SQLでnot equalには!=と<>のどちらを使うべきですか?
-
[解決済み] SQLのインデックスとは何ですか?
-
[解決済み] T-SQL文の接頭辞Nの意味と使うべきタイミングは?
-
[解決済み】T-SQLのキャストとコンバートの比較
-
[解決済み] データベースのトランザクションログが満杯です
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
plsql-stored-procedure ORA-06550 エラー処理
-
[解決済み] SQL Server : 列を行に変換する
-
[解決済み] UNIONとUNION ALLの違いは何ですか?
-
[解決済み] SQL Serverでシングルクォートをエスケープするにはどうすればよいですか?
-
[解決済み] MySQLでFULL OUTER JOINを行うにはどうすればよいですか?
-
[解決済み] SQL Server の VARCHAR/NVARCHAR 文字列に改行を挿入する方法
-
[解決済み] ある列の最大値を持つ行を取得する
-
[解決済み] SQL Server の CASE ステートメントで OR がサポートされていない。
-
[解決済み] SQLでランダムな行を要求する方法は?
-
[解決済み] T-SQL文の接頭辞Nの意味と使うべきタイミングは?