0

mysqlを使用するのはこれが初めてであり、トリガーの使用方法を学ぶことに専念しています。

lpr_uploadとlpr_traveltimeの2つのテーブルがあります。私のlpr_uploadテーブルは次のようになります

+----------+---------+--------+-----------+
| date_time | site_id | lane_id| lpr_text  |                  
+----------+---------+--------+-----------+

lpr_uploadに新しい行を追加するときはいつでも、新しい行のlpr_texがテーブルにすでに存在するかどうかを確認したいと思います。すでに存在する場合は、lpr_textと新しいdatetime(古いdatetime)を使用してlpr_traveltimeに新しい行を追加します。これは私がこれまでに持っているものです:

重複キーの更新時にlpr_opt_travel_times(travel_time、lpr_text)値に挿入します(TIMEDIFF(new.date_time、...)、lpr_textを選択します)..。

私はこれを終える方法がわかりません。また、テーブルにすでに存在する行からdate_timeを取得するにはどうすればよいですか?

4

1 に答える 1

1

これを試して:

declare ldt_date_time datetime;
select date_time into ldt_date_time from tbl where tbl.lpr_text = NEW.lpr_text and date_time <> NEW.date_time;
if ldt_date_time is not null then
    insert into lpr_opt_travel_times(travel_time, lpr_text) values (ldt_date_time, NEW.lpr_text);
end if;

列date_timeがdatetime型であると想定しているので、datetimeデータ型でvarを宣言します。

新しいマジックテーブルから、挿入されたlpr_textのdate_timeの値を選択しますが、そのdate_timeは挿入されたものとは異なります。

varがnullで、割り当てが行われず、varが初期デフォルト値のNULLを保持している場合は、varと挿入されたlpr_textを使用して他のテーブルに行を挿入します。

于 2012-05-22T18:14:01.290 に答える