2017-05-09 8 views
-1

:トランザクションでMySQL:更新カラムがある場合は何もしませんか?次の操作を実行する方法

if table has column 'name' - update 'name', else - do nothing? 

私の作業SQLは

UPDATE tmp set name = NULL 

のtmpテーブルキースがNULLに名前を更新し、旋回するレコードが重複するプロシージャのために必要です。ただし、一部の表には「名前」フィールドがありません。

したがって、存在する場合はnullを更新することは可能ですか?それ以外の場合は何もしないでください。

+1

私はダウンワードを理解していませんが、同じ問題を思い出した人にとっては、mysqlではエラーなしで存在しないカラムからの読み取り(例えばサイレント無視)はできません。列名(表内の列の存在)を知ること。回避策 - 最初の情報スキーマを読み込んですべての列名を取得し、それに従って処理を進めます。このプロセスでは、トランザクションは複数のsqlsで処理する必要があります。 – bbe

答えて

0

私が知る限り、それは不可能です。さらに、一度に多くのテーブルを変更することは絶対にお勧めしません。一般に、各テーブルは一意であり、フィールド名をNULLに設定すると重要なデータが失われる可能性があります。

関連する問題