よく似た質問をたくさん見ましたが、答えをクロールしてもトリガーエラーをなくすことはできませんでした。
必要な結果は次のとおりです。データベーステーブルに新しい値が挿入されるたびtemp_pool
にトリガーされ、新しいアドレスが以前のアドレス値と同じでない場合は、新しい値がロケーションテーブルに挿入されますdev_id
。NEW.dev_id
クエリ(サンプル)は次のとおりです。
CREATE TRIGGER filter
after insert on geo.temp_pool
for each row
BEGIN
DECLARE OLD_ADDR VARCHAR(2048);
OLD_AADR = select address from temp_pool where dev_id like NEW.dev_id
order by date desc, time desc limit 1;
IF (OLD_ADDR != NEW.address) THEN
INSERT INTO a3380361_geo.location
VALUES (NEW.dev_id,NEW.address,NEW.lat,NEW.lng,NEW.date,NEW.time);
END IF;
END
$$
phpMyAdminエディターを使用していて、区切り文字をに設定してい$$
ます。
私が得ているエラーは次のとおりです。
1064-SQL構文にエラーがあります。MySQLサーバーのバージョンに対応するマニュアルで、使用する正しい構文を確認してください。'=temp_poolからアドレスを選択します。'5行目
SELECT
からの値を変数[ ]に割り当てることには問題があると強く信じていますがOLD_ADDR
、私の問題を解決する方法はありますか?
ロジックは単純で、要件はクエリから理解できますよね?
すべての意見や提案を受け入れます。