mysql - 为什么我会收到错误 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
我哪里错了?
解决方案
发现错误!
我在触发器中声明的变量是var_role。在if条件检查“writer”中的错字,我将角色写为变量而不是var_role ..ffs
推荐阅读
- c# - 如何在asp.net web api中制作小密码重置令牌?
- ios - iOS 仅在 NavigationController 根目录上显示标签栏
- c# - 使用 sql 中的列在登录页面中设置角色
- amazon-web-services - 60 秒后“从服务器读取响应时出现 504 超时”
- swift - 为什么我不能让 SDWebImage 与 swift 一起使用?
- python - 创建一个 TFIDF 向量输出一个较小维度的矩阵
- azure-iot-hub - 完整的设备绑定通知 REST 对我不起作用
- angular - 连接两个剩余查询的结果并绑定在一个对象中 | RxJS + 角 7
- ksh - .ksh 是删除路径斜杠吗?
- entity - Watson Assistant 保留作为公认实体的价值