我正在编写我的第一个sql触发器查询。所以我试图掌握触发器声明的想法。我的计划是 -
1.将数据插入名为' trigger_table';
的表格中2.插入后,从同一个表中获取数据并使用PDO将其存储到php变量中;
所以我编写了以下触发器语句。在mysql workbench中执行sql时出现此错误
错误1415:不允许从触发器返回结果集
SQL Statement:
CREATE TRIGGER `trigger_table_AINS` AFTER INSERT ON trigger_table FOR EACH ROW
-- Edit trigger body code below this line. Do not edit lines above this one
BEGIN
SELECT * FROM trigger_table;
END
如果有人引导我走向正确的道路来完成我的任务,那将是一个很大的帮助。谢谢!
php代码:
$db=new PDO("mysql:host=localhost;dbname=trigger",'root','');
$sql="INSERT INTO trigger_table (name,email) VALUES('zami','alzami@gmail.com')";
$conn=$db->prepare($sql);
if($conn->execute()){
$result=$conn->fetchAll(PDO::FETCH_OBJ);
}
答案 0 :(得分:1)
触发器用于响应事件以更新,修改或删除内容。正如错误所述,它们并不意味着返回数据。
触发器是与表关联的命名数据库对象,并在表发生特定事件时激活。触发器的一些用途是执行对要插入表中的值的检查,或者对更新中涉及的值执行计算。
您可能正在追踪Stored Routine
MySQL 5.7支持存储例程(过程和函数)。存储例程是一组可以存储在服务器中的SQL语句。完成此操作后,客户不需要继续重新发布单个语句,但可以参考存储的例程。