1

「table1」に新しい行が挿入されるたびに、「table1」の値に基づいて「table2」の値を更新する方法を理解するのに苦労しています。table1 に何を挿入するかによって、トリガーは table2 に新しい行を挿入するか、table2 の既存の行の値を更新する必要がある場合があります。「load data infile」とテキスト ファイルを使用して、一度に「table1」に数千行を挿入します。可能であれば、各行が挿入された後ではなく、ファイル全体が 'table1' に挿入された後にテーブル 2 の更新が行われるようにしたいと考えています。どんな助けでも大歓迎です。以下に、table1 の定義と table2 に必要なものを含めました。

//Table1
create table table1 (
V1 varchar(5),
V2 varchar(5),
V3 date,
V4 double,
V5 date,
V6 double,
V7 double,
Primary Key (V1,V2,V3,V4,V5) );

//Table2
V1 - Same as table1
V2 - Same as table1
V3 - Same as table1
V4 - Same as table1
V5 date - minimum of V5 in table1
V6 date - maximum of V5 in table1
4

1 に答える 1

1

私自身の質問に対する部分的な回答として、MySQL リリース 5.6 (最新バージョン) の時点で、トリガーは各行が挿入された後にのみ実行するように構成できることがわかりました。が使用されている場合load data infile、各行の後ではなく、ファイル全体が挿入された直後にトリガーを実行するように構成することはできません。

うまくいけば、これは後で拡張されます。現在の構文では、トリガーを作成するときに句を含める必要がありますFOR EACH ROWFOR EACH 10 ROWS句を省略するとエラーになりますが、またはなどの他のオプションはありませんFOR EACH FILE

于 2012-05-18T15:57:11.300 に答える