这个sql触发器语句有什么问题

时间:2016-01-05 17:55:15

标签: php mysql

我正在编写我的第一个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);
   }

1 个答案:

答案 0 :(得分:1)

触发器用于响应事件以更新,修改或删除内容。正如错误所述,它们并不意味着返回数据。

根据documentation

  

触发器是与表关联的命名数据库对象,并在表发生特定事件时激活。触发器的一些用途是执行对要插入表中的值的检查,或者对更新中涉及的值执行计算。

您可能正在追踪Stored Routine

  

MySQL 5.7支持存储例程(过程和函数)。存储例程是一组可以存储在服务器中的SQL语句。完成此操作后,客户不需要继续重新发布单个语句,但可以参考存储的例程。