mysql - 选择前触发

标签 mysql select triggers

我有以下触发语句

DELIMITER //
CREATE TRIGGER rating
BEFORE SELECT
ON `clinic`
FOR EACH ROW
BEGIN
    SET NEW.OLD.`rate` = (SELECT AVG(`rate`) FROM `Review` WHERE `Clinic_id` = NEW.OLD.`id`);
END//

我尝试按照此处给出的说明进行操作 http://dev.mysql.com/doc/refman/5.0/en/create-trigger.html但出现语法错误。我做错了什么?

注意我已经在 Review 表上运行了 SELECT 语句,它给出的结果没有任何问题。

已编辑:我意识到我不能在 SELECT 之前触发,因此决定在应用层处理它。看到这个:http://forums.mysql.com/read.php?99,277396,277692#msg-277692

最佳答案

trigger_event 不能是一个选择 trigger_event = { INSERT |更新 |删除

CREATE
[DEFINER = { user | CURRENT_USER }]
TRIGGER trigger_name
trigger_time trigger_event
ON tbl_name FOR EACH ROW
trigger_body

触发时间:{之前 |之后

触发事件:{ 插入 |更新 |删除

关于mysql - 选择前触发,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15289156/

相关文章:

mysql - 复制 MySQL 数据库作为从属,忽略一行

php - 如何使用下拉列表将两个表连接到表上?

mysql - 在 C 中追加或创建文件时如何请求连续 block (非碎片)?

MySQL - 如何根据数据选择连续行

包含用户、角色和权限的 SQL SELECT 语句

sqlite - sqlite触发器会触发其他触发器吗?

Mysqldump 命令在命令提示符下不起作用

mysql - 尝试根据 mySQL 中 SELECT 语句的结果更改表

mysql - 需要有关 mysql 模式设计的帮助 - 当前模式需要触发器中的动态 sql

python - PostgreSQL - Python - 触发器 - 访问 current_user