コミット前に未処理の参照整合性違反がないか確認します。
sa_check_commit( tname, keyname )
tname 参照整合性に現在違反しているローのあるテーブルの名前を含む VARCHAR(128) パラメータ
keyname 対応する外部キー・インデックスの名前を含む VARCHAR(128) パラメータ
データベース・オプション wait_for_commit が ON に設定されている場合、または外部キーが CREATE TABLE 文の CHECK ON COMMIT 句を使用して定義されている場合、データベースを更新すると、変更がコミットされる前に違反が解決されていれば、参照整合性違反が発生します。
変更をコミットする前に、sa_check_commit システム・プロシージャを使用して未処理の参照整合性違反があるかどうかを確認できます。
返されたパラメータは、現在、参照整合性に違反しているローが含まれているテーブルの名前と、対応する外部キー・インデックスを表しています。
なし
なし
次の一連のコマンドを Interactive SQL から実行できます。サンプル・データベースの Departments テーブルからローが削除され、参照整合性違反が発生します。sa_check_commit システム・プロシージャを呼び出して、どのテーブルとキーに未処理の違反があるかを確認します。ROLLBACK で変更をキャンセルします。
SET TEMPORARY OPTION wait_for_commit='On' go DELETE FROM Departments go CREATE VARIABLE tname VARCHAR( 128 ); CREATE VARIABLE keyname VARCHAR( 128 ) go CALL sa_check_commit( tname, keyname ) go SELECT tname, keyname go ROLLBACK go |
Copyright © 2009, iAnywhere Solutions, Inc. - SQL Anywhere 11.0.1 |