我有一个命令,我想在表/usr/bin/php /var/www/app/artisan broadcast --sid=14 --cid=89
中插入后执行,命令是:
CREATE TRIGGER insert_event
AFTER INSERT ON event
FOR EACH ROW
EXECUTE PROCEDURE call_artisan_broadcast();
根据插入的数据,哪个数字 14 和 89 是动态的。
为此,我创建了这样的触发器:
CREATE OR REPLACE FUNCTION call_artisan_broadcast()
RETURNS TRIGGER AS
$BODY$
BEGIN
COPY (SELECT 1) TO PROGRAM '/usr/bin/php /var/www/app/artisan broadcast --sid='||NEW.sid||' --cid='||NEW.cid;
RETURN NEW;
END
$BODY$
LANGUAGE plpgsql VOLATILE;
我创建了这样的触发器功能:
[42601] ERROR: syntax error at or near "||"
该触发器产生错误
NEW
如果命令没有连接,则此触发器可以正常工作。我不知道如何在 COPY TO PROGRAM 中将命令字符串与变量COPY TO PROGRAM
连接起来。
我的问题是如何在触发器中连接.wrapper {
display: flex;
flex-direction: column;
min-height: 100vh;
border: 1px solid black;
}
.body {
flex: 1 0 300px;
}
body {
margin: 0;
}
* {
box-sizing: border-box;
}
中的字符串?
答案 0 :(得分:3)
试试这个:
EXECUTE format('COPY (SELECT 1) TO PROGRAM ''/usr/bin/php /var/www/app/artisan broadcast --sid=%s --cid=%s'' ', NEW.sid, NEW.cid);