当前位置: 首页 > 知识库问答 >
问题:

获取MySQL触发器错误

越涛
2023-03-14

我在WordPress数据库中编写了一个MySQL触发器&它给出了一个错误。我的触发器代码如下:

CREATE 
  [DEFINER = { user | CURRENT_USER }]
  TRIGGER up_trig AFTER INSERT ON `wp_postmeta` 
  FOR EACH ROW
  BEGIN
    DECLARE `pan_id` INT
    "SELECT DISTINCT (`meta_value`) INTO `pan_id`
     FROM `wp_postmeta`
     WHERE `meta_key` = 'panchayat_id' 
     AND `meta_value` = NEW.(SELECT DISTINCT meta_value 
                             FROM wp_postmeta 
                             WHERE meta_key = panchayat_id)"

    IF `pan_id` != 'NULL'  THEN
       UPDATE `wp_panchayatpost`
       SET post_count = post_count+1
       WHERE 'panchayat_id' = 'pan_id';
    END IF;
END;

它会给出以下错误消息:

错误

SQL查询:文档

CREATE[DEFINER={user CURRENT_USER}]trigger up_trig AFTER INSERT ONwp_postmeta每一行BEGIN DECLAREpan_id“选择DISTINCT(meta_value)INTOpan_idFROMwp_postmeta其中meta_key='panchayat_id'和meta_value=new。(选择

MySQL Said:文档

#1064-您的SQL语法有错误;在第2行“[DEFINER={user CURRENT_USER}]TRIGGER up_trig AFTER INSERT”附近查看与您的MySQL server版本相对应的手册,以获得要使用的正确语法

共有1个答案

锺离刚洁
2023-03-14

只需删除[DEFINER={user CURRENT_USER}]。当您要定义触发器所有者用户的种类时,这是必需的。或替换为definer=root(或用于连接的任何其他用户名)。

 类似资料:
  • 问题内容: 据我了解,当您调用last_insert_id()时,它是通过连接进行的,因此您将获得插入到调用last_insert_id()的同一连接中的最后一行的ID,对吗? 那么,如果我在“ AFTER INSERT”触发器中调用last_insert_id()怎么办? 我想做的基本上是这样 “ anothertable”中的id与“ sometable”中的id非常重要,这是否可行?还是应该

  • 嗨,我正在将我的所有表从一个数据库导入到另一个数据库,但不知何故,触发器没有被导入。使用MySQL5.6。所以我试图从以前的数据库中复制触发器语句来创建当前数据库中的触发器。分隔符$$ 我在工作台的输出部分中得到的错误 知道我做错了什么吗

  • 问题内容: 如果我 在表上有,如何抛出错误以阻止对该表进行更新? 问题答案: 这是一种可行的技巧。这不是干净的,但看起来可能可行: 本质上,您只是尝试更新不存在的列。

  • 本文向大家介绍MySQL触发器 Update触发Insert失败,包括了MySQL触发器 Update触发Insert失败的使用技巧和注意事项,需要的朋友参考一下 今天工作需要,想要实现将仅对状态更新的表进行历史记录显示,于是考虑在原表中建立触发器,将更新的内容同时写入另一张表 于是进行测试 执行触发器语句,报错,报错内容如下: 分析,由于访问工具HediSQL,导致无法正常创建触发器,相同语句,

  • 主要内容:SHOW TRIGGERS语句查看触发器信息,在triggers表中查看触发器信息查看触发器是指查看数据库中已经存在的触发器的定义、状态和语法信息等。MySQL 中查看触发器的方法包括 SHOW TRIGGERS 语句和查询 information_schema 数据库下的 triggers 数据表等。本节将详细介绍这两种查看触发器的方法。 SHOW TRIGGERS语句查看触发器信息 在 MySQL 中,可以通过 SHOW TRIGGERS 语句来查看触发器的基本信息,语法格

  • 主要内容:基本语法,创建 BEFORE 类型触发器,创建 AFTER 类型触发器触发器是与 MySQL 数据表有关的数据库对象,在满足定义条件时触发,并执行触发器中定义的语句集合。触发器的这种特性可以协助应用在数据库端确保数据的完整性。 基本语法 在 MySQL 5.7 中,可以使用 CREATE TRIGGER 语句创建触发器。 语法格式如下: CREATE <触发器名> < BEFORE | AFTER > <INSERT | UPDATE | DELETE > ON <