2

いくつかの更新クエリを含む .sql ファイルがあります。

私が探しているのは、更新クエリが失敗したときです。別の更新クエリを実行できるはずです

たとえばUpdate table1 set col1="zbc" where id=1; 、「id=1」が見つからなかったため、上記のクエリが失敗したとします。

次に、以下のクエリを実行して、別のテーブルを更新します。

Update table2 set col1="zbc" where id=1;

これを.sqlファイルに入れたいので、if/caseステートメントまたは同様のものを使用してこれを達成するための単一のクエリを探しています。

4

2 に答える 2

0

たとえば、2 番目のクエリを実行して、これらの行が最初のテーブルに存在するかどうかを確認するとどうなるでしょうか。

Update table1 set col1="zbc" where id=1;
Update table2 set col1="zbc" where id=1 
                             and not exists (select id from table1 where id=1);

またはROW_COUNT() MySql 関数と IF を使用します。最後のステートメントによって変更、削除、または挿入された行数を返します。

于 2012-09-19T08:35:38.277 に答える
0

ストアド プロシージャを使用して、.sql ファイルの内容からそのプロシージャを呼び出すことはできますか? MySQL のマニュアルには、if/then 句は「ストアド プログラム」でのみサポートされていると記載されています: http://dev.mysql.com/doc/refman/5.5/en/if.html

于 2012-09-19T07:25:00.143 に答える