mysql - 由于触发器导致 mysql 出现 1054 错误

标签 mysql triggers mysql-error-1054

-- Table `testas`.`groups`
-- -----------------------------------------------------
DROP TABLE IF EXISTS `testas`.`groups` ;

CREATE TABLE IF NOT EXISTS `testas`.`groups` (
  `ID` VARCHAR(36) NULL,
  `name` VARCHAR(45) NULL,
  `count` INT(10) NOT NULL,
  `parent_id` VARCHAR(36) NULL,
  PRIMARY KEY (`count`))
ENGINE = InnoDB;

这是我创建表的代码,如果删除的记录的 id 与 Parent_id 匹配,我在 DELETE 之前有一个触发器,必须将 Parent_id 设置为 0。

这里是触发器的代码:

CREATE TRIGGER `groups_BEFORE_DELETE` BEFORE DELETE ON `groups`
 FOR EACH ROW BEGIN
    IF OLD.ID = parent_id THEN
        INSERT INTO groups(parent_id) values ('0');
    END IF;
END

当我想要删除其中一条记录时,出现错误。

#1054 - unknown column 'parent_id' in 'where clause'

最佳答案

而不是

INSERT INTO groups(parent_id) values ('0');

我想你的意思是

SET NEW.parent_id := 0;

关于mysql - 由于触发器导致 mysql 出现 1054 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28943605/

相关文章:

php - 如何检查数据是否已存在然后从数组中随机生成新数据

php - 如何从 PHP 数组插入多个 MySQL 表行

mysql - 访问控制 : RBAC with additional group memberships instead of object properties

mysql - SQL中如何对结果进行分组?

mysql - 对抗 INNER JOINS - Chapter : unknown column

MySQL在触发器错误中声明变量

mysql - 触发器从第二个 MySQL 表中删除

sql - PostgreSQL中触发器函数的动态查询

mysql - 在 where 子句中引用复杂的表达式值

php - Zend DB 中带有 'like' 子句的 Order 子句