mysqlでエラーが発生した場合の対処方法

coldplay.xixi
リリース: 2020-10-23 09:31:08
オリジナル
2999 人が閲覧しました

Mysql エラー処理方法: 1. 1062 エラーが発生した場合は SELECT 文を実行する; 2. SQL の select 文が値を返さない場合は [l_done=1] を設定して実行を続行する; 3. その後エラー メッセージが生成される 現在のブロックまたはストアド プロシージャを終了します; 4. エラーがある場合は、[l_error] を 1 に設定して実行します。

mysqlでエラーが発生した場合の対処方法

Mysql エラー処理方法:

1. 何らかのエラー (NOT FOUND) がある場合は、l_error を設定します。 1 になった後も実行を続行します:

DECLARE CONTINUE HANDLER FOR SQLEXCEPTION
SET l_error=1;
ログイン後にコピー

2。エラーが発生した場合 (NOT FOUND ではない)、現在のブロックまたはストアド プロシージャを終了する前に ROLLBACK を実行し、エラー メッセージを生成します。

DECLARE EXIT HANDLER FOR SQLEXCEPTION
BEGIN
ROLLBACK;
SELECT 'Error occurred – terminating';
END;
ログイン後にコピー

3. MySQL 1062 エラー (キー値の重複) が発生した場合は、SELECT ステートメントを実行し (呼び出しプログラムにメッセージを送信)、実行を続行します。

DECLARE CONTINUE HANDER FOR 1062
SELECT 'Duplicate key in index';
ログイン後にコピー

4. SQLSTATE 2300 エラーの場合(重複キー値) ヘルス値) が発生した場合、SELECT ステートメントを実行し (呼び出しプログラムにメッセージを送信)、実行を続行します

DECLARE CONTINUE HANDER FOR SQLSTATE '23000'
SELECT 'Duplicate key in index';
ログイン後にコピー

5。カーソルまたは SQL select ステートメントが値を返さない場合は、l_done を設定します。 =1 にして実行を続行します

DECLARE CONTINUE HANDLER FOR NOT
FOUND
SET l_done=1;
ログイン後にコピー

6。この例は、名前付き条件

DECLARE CONTINUE HANDLER FOR SQLSTATE '02000 '
SET l_done=1;
ログイン後にコピー

7の代わりにSQLSTATE変数を使用することを除いて、前の例と同じです。この例では、MySQLエラーを使用します。名前付き条件または SQLSTATE 変数の代わりにコード変数を使用します。2 つの例は同じです

DECLARE CONTINUE HANDLER FOR 1329
SET l_done=1;
ログイン後にコピー

その他の関連する無料学習の推奨事項:mysql チュートリアル ######(ビデオ)### ######

以上がmysqlでエラーが発生した場合の対処方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート