単一クエリを使用して複数のテーブルを更新するにはどうすればいいですか?一度に2つのテーブルを更新する必要があります。このクエリを試しましたが、更新に失敗しますmysqlの複数のテーブルを更新する方法
UPDATE contact,bill SET companyid =2 WHERE userid=1 AND companyid =20;
単一クエリを使用して複数のテーブルを更新するにはどうすればいいですか?一度に2つのテーブルを更新する必要があります。このクエリを試しましたが、更新に失敗しますmysqlの複数のテーブルを更新する方法
UPDATE contact,bill SET companyid =2 WHERE userid=1 AND companyid =20;
これは動作するはずです。
UPDATE contact INNER JOIN bill SET companyid =2 WHERE userid=1 AND companyid =20;
それとも競合を防ぐために。(あなたのテーブルレイアウトのわからないが、HERESに目安)
UPDATE contact x INNER JOIN bill y SET x.companyid =2 WHERE x.userid=1 AND y.companyid =20;
この回答は右になる必要があります –
これはおそらくエラーを発生させます(テストしていません)。 SET companyid = 2は、更新するテーブルを認識しません(ユーザーが更新しようとしているときに両方のテーブルにcompanyidがあると仮定します)。 – CristiC
@Eddie私は確信していませんが、私はこれと同じようにオープンジョイントをすると、OPが持っている 'table1、table1'で同じことを表現できると思います。違いはありますか? –
あなたは同じ時間に更新することはできません。
UPDATE contact SET companyid=2 WHERE userid=1 AND companyid =20;
UPDATE bill SET companyid=2 WHERE userid=1 AND companyid =20;
あなたは「一度に2つのテーブルを更新する必要がある」理由は、変更が半分終わらないようにすることである場合は、トランザクション内でクエリをラップ検討する必要があります。
START TRANSACTION;
UPDATE ...
UPDATE ...
COMMIT;
(または、MySQLの構文は...)
なぜ2つのテーブルを一度に更新する必要がありますか? 2つのクエリを実行できませんか? –
テーブル構造を投稿してください。エラーが発生した場合は、同様に投稿してください... –