[英]Laravel migrate error near BEGIN on trigger PostgreSQL
我已經在mysql
和laravel中使數據庫觸發器工作正常,但是當我移至postgresql
時出現錯誤:
SQLSTATE[42601]: Syntax error: 7 ERROR: syntax error at or near "BEGIN"
(我是新來的使用postgresql btw)
這是我在遷移中編寫的代碼:
DB::unprepared('CREATE TRIGGER histories_insert AFTER INSERT ON packets FOR EACH ROW
BEGIN
IF new.status = "pending" THEN
insert into `histories` (`packet_id`, `message`, `created_at`, `updated_at`) VALUES (new.id, "Barang berhasil di buat", now(), now());
END IF;
END');
我真的很困惑。 希望可以有人幫幫我 :)
您需要使其成為一個過程:
從文檔:
PostgreSQL僅允許為觸發的動作執行用戶定義的函數。 該標准允許執行許多其他SQL命令,例如CREATE TABLE,作為觸發操作。 通過創建執行所需命令的用戶定義函數,不難解決此限制。
DB::unprepared('CREATE TRIGGER histories_insert
AFTER INSERT ON packets
FOR EACH ROW
EXECUTE PROCEDURE that_procudure_you_wrote_with_that_content(new)');
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.