mysql - 如何使用 Sequel Pro 创建触发器

标签 mysql

我正在尝试在数据库上创建触发器。我可以让它在 SQL fiddle 中正常工作,但是当我尝试在 Sequal Pro 中创建触发器时,我只是得到一个错误..

You have an error in your SQL syntax; check the manual that corresponds to your MySQL 
server version for the right syntax to use near '' at line 8

这是 SQL fiddle.. http://sqlfiddle.com/#!2/e849f/1

我使用的过程是在创建模式后在查询窗口中执行以下命令..

CREATE TRIGGER upd_selectoin 
BEFORE UPDATE ON main 
FOR EACH ROW 
BEGIN
   IF NEW.state = 3 THEN 
   UPDATE selection s JOIN main m 
      ON m.main_id = s.id
      SET s.allow = 1, last_update_timestamp = NOW()
   WHERE s.id = NEW.main_id; 
 END IF;
END; 

最佳答案

遇到同样问题的人:

Sequel Pro 自行创建周围语句。 所以声明应该是这样的:

IF NEW.state = 3 THEN 
  UPDATE selection s JOIN main m 
    ON m.main_id = s.id
    SET s.allow = 1, last_update_timestamp = NOW()
  WHERE s.id = NEW.main_id;
END IF; 

关于mysql - 如何使用 Sequel Pro 创建触发器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18251236/

相关文章:

java - 如何用java jar文件复制MySQL数据库

php - 按 NextPageID 字段排序数组

mysql - Elasticsearch 查询: Sum + Case Equivalent?

MySQL:在 JOIN 语句中使用 NULL 作为通配符

php - MySQL、PHP - 表单帮助

php - Magento - 高级产品导入

mysql - 如何使数据库可移植

mysql - mysql中日期和时间的单独字段

java - 为什么我不能在 Hibernate/Struts 中访问新创建的记录?

php - 寻找无碰撞随机数的有效方法