年内完成を目指して
昨夜挑戦したMySQLのトリガー、あまりにも便利なのでバンバン作成してしまいましたが、これって乱用しても大丈夫なのかなぁ(゚ー゚*?)
一応どれも問題なく動いてくれていますが、SQLの理解がまだまだ浅いようです。
CREATE TRIGGER trigger_name BEFORE DELETE
ON table_name FOR EACH ROW
BEGIN
INSERT INTO back_up
SELECT * FROM table_name
WHERE id = OLD.id;
END//
という感じで作成したのですが、必要ないカラムは省いてしまえい(*`▼´*)b!!と、貧乏性が顔を出します。
そこで、バックアップ用のテーブルは必要であろうカラムのみにして、赤字の部分を以下のように変えてみました。
INSERT INTO back_up
(col1, col2, col3)
VALUES
(SELECT
col1,
col2,
col3
FROM table_name
WHERE id = OLD.id);
(本来のテーブルにはもっとカラム数が多いワケですが)
すると、MySQLから例によって例の如くsyntax error凸(゚皿゚メ)のご挨拶…。
SQLの構文にミスがあるとの事なので、SELECTを利用したINSERT文に問題があるか、トリガーの仕組みを分かっていないかどちらかなのでしょうね~(両方という指摘はごカンベン(≧ヘ≦))
貧乏性にはフタをして、運用テーブルとバックアップテーブルの構成を同じにして取りあえず解決ですが、まだまだ勉強しなくてはイケマセン。
そんなこんなで、管理画面で唯一残っていたメールのやり取りに関しても、送受信テストまで完了いたしましたので、さぁ今度こそ公開画面にがっぷり四つです!!
燃えてきました。何だかとっても燃えてきました((((((ノ゚⊿゚)ノヌオォォォ
