parent_table:
ID | FIELD1 | FIELD2
____|________|________
1 |........|......
2 |........|.....
3 |..............
child_table:
ID | FIELD3
___|________
1 | 18
1 | 7
2 | ..
1 | ..
3 | ..
2 | ..
を複数の行の更新に参加します。 これは私が達成するために必要なものである:各IDの子テーブルのエントリ数が、更新時に変更できることだが、私はこれらのテーブルを更新したいとしましょう、子テーブルの上に
UPDATE parent_table SET
FIELD1 = 'XXX',
FIELD2 = 'YYY'
WHERE ID = 2;
DELETE FROM child_table
WHERE ID = 2;
INSERT INTO child_table (ID, FIELD3)
VALUES (2, 50),
VALUES (2, 17),
VALUES (2, 9);
ノート。
それはちょうど1つのクエリで同じ結果を得ることは可能ですか? トランザクションを使用することはできません。
は多分最初の2つのクエリが合併しやすくなります。 私は子テーブルを結合し、UPDATEの間にnull値を設定しようとしましたが、私は それはあなたがSELECT入れ子になっているようにネストUPDATEを持つことが可能です。..複数の行を処理する方法がわかりませんか?
、問題がある:どのように私は、結合テーブルに複数の行を更新していますか?たとえCASE文が許可されていても(idk)、テーブル内のエントリ数と更新したい番号との間にどのような不一致があるのでしょうか?たとえば、..ここにID = 2の2つのエントリがありますが、別のエントリを挿入したい場合はどうすればいいでしょうか? ..たぶんUPDATEはできません。 – Valentino
「別の」を入れると、例えばID2とID3の両方を変更しますか? – alfasin
いいえ、 'FIELD3'が' 5,40,15 "に設定された文字列だった場合、' '3,5,7,8,15,7" 'に更新する必要があるかもしれません。 'child_table'の行数が変わることがあります。その場合は – Valentino