首页 > 解决方案 > 为什么我会收到错误 1054:某些输入的字段列表中的未知列?

问题描述

即使该字段存在于表“WebsiteRole”中,我也一直收到未知列错误:

错误 1054:“字段列表”中的未知列“角色”

现在经过一些研究,我知道这可能是因为在这张桌子上设置了触发器。我检查了触发器的代码,但我仍然不清楚它的代码有什么问题。

奇怪的是插入适用于角色不是“编辑器”的输入组合。

以下是表格: 网站角色 在此处输入图像描述

这是我的输入触发器:

CREATE DEFINER=`vasisht54`@`%` TRIGGER `website_server`.`WebsiteRole_AFTER_INSERT` AFTER INSERT ON `WebsiteRole` FOR EACH ROW
BEGIN
DECLARE var_role varchar(15);
SET var_role = NEW.role;
IF var_role = 'owner' THEN
    INSERT INTO WebsitePriviledge VALUES(NULL, 'create', NEW.dev_id,NEW.website_id);
    INSERT INTO WebsitePriviledge VALUES(NULL, 'read', NEW.dev_id,NEW.website_id);
    INSERT INTO WebsitePriviledge VALUES(NULL, 'update', NEW.dev_id,NEW.website_id);
    INSERT INTO WebsitePriviledge VALUES(NULL, 'delete', NEW.dev_id,NEW.website_id);
ELSEIF var_role = 'admin' THEN
    INSERT INTO WebsitePriviledge VALUES(NULL, 'create', NEW.dev_id,NEW.website_id);
    INSERT INTO WebsitePriviledge VALUES(NULL, 'read', NEW.dev_id,NEW.website_id);
    INSERT INTO WebsitePriviledge VALUES(NULL, 'update', NEW.dev_id,NEW.website_id);
    INSERT INTO WebsitePriviledge VALUES(NULL, 'delete', NEW.dev_id,NEW.website_id);
ELSEIF role = 'writer' THEN
    INSERT INTO WebsitePriviledge VALUES(NULL, 'create', NEW.dev_id,NEW.website_id);
    INSERT INTO WebsitePriviledge VALUES(NULL, 'read', NEW.dev_id,NEW.website_id);
    INSERT INTO WebsitePriviledge VALUES(NULL, 'update', NEW.dev_id,NEW.website_id);
ELSEIF var_role = 'editor' THEN
    INSERT INTO WebsitePriviledge VALUES(NULL, 'read', NEW.dev_id,NEW.website_id);
    INSERT INTO WebsitePriviledge VALUES(NULL, 'update', NEW.dev_id,NEW.website_id);
ELSEIF var_role = 'reviewer' THEN
    INSERT INTO WebsitePriviledge VALUES(NULL, 'read', NEW.dev_id,NEW.website_id);
END IF;
END

这是我在角色为“编辑器”的输入中收到的错误消息 错误信息

我哪里错了?

标签: mysqltriggersmysql-workbench

解决方案


发现错误!

我在触发器中声明的变量是var_role在if条件检查“writer”中的错字,我将角色写为变量而不是var_role ..ffs


推荐阅读