2017-07-06 18 views
0

製品IDを別のものに変更する手動で作成した変換スクリプトがあります。それは1000製品のためにそれを行い、私は10の異なるテーブルでそれを実行する必要があります。スクリプトを複製しなくてもいいですか? 異なるテーブルで同じSQLスクリプトを実行する

は、私はこのようにそれを行うことを望んだが、それはサポートされていません。

convert_one.sql:

UPDATE @table SET product_id=12345 where product_id=123 
... a thousand similar lines 

convert_all.sql:あなたが持っている

SET @table = 'table1'; 
SOURCE convert_one.sql; 

SET @table = 'table2'; 
SOURCE convert_one.sql; 
+0

はあなたには、いくつかの 'php'スクリプトファイル –

+0

これは、Javaアプリケーションとワンタイム変換であるから、あなたの' SQL'のコードを実行することができます。コーディングは効率的ではありません。 – Arthur

答えて

0

prepared statementsを使用します。それ以外の場合、変数は単に文字列のように扱われ、文字列の選択や更新はできません。

はこのようにそれを試してみてください。

SET @table = 'table1'; 
PREPARE stmt FROM CONCAT('UPDATE ', @table, ' SET product_id=12345 where product_id=123;'); 
EXECUTE stmt; 
DEALLOCATE PREPARE stmt; 
関連する問題