MySQL错误“1054”;“字段列表中的未知列”;带扳机
想知道是否有人能帮忙 我正在使用MySQL。我的数据库中有两个表,MySQL错误“1054”;“字段列表中的未知列”;带扳机,mysql,sql,database,triggers,Mysql,Sql,Database,Triggers,想知道是否有人能帮忙 我正在使用MySQL。我的数据库中有两个表,locker和locker\ulocker\u Occupation是一个指向学生表的链接表,记录哪些学生拥有哪些储物柜,locker表是关于每个储物柜的信息。在locker中有一个布尔列,用于说明是否使用了locker。为此,我尝试创建一个触发器,以便当locker\u表中的locker\u id在locker\u属性中引用时,locker\u take布尔值将变为true。模式接受触发器,我可以将数据插入locker。但是,插
locker
和locker\u
locker\u Occupation
是一个指向学生表的链接表,记录哪些学生拥有哪些储物柜,locker
表是关于每个储物柜的信息。在locker
中有一个布尔列,用于说明是否使用了locker
。为此,我尝试创建一个触发器,以便当locker\u表中的locker\u id
在locker\u属性中引用时,locker\u take
布尔值将变为true。模式接受触发器,我可以将数据插入locker
。但是,插入到locker\u possion
时会出现以下错误:
错误代码:1054。“where子句”中的未知列“locker.locker\u id”
以下是为locker和locker_创建脚本:
CREATE TABLE locker (
locker_id VARCHAR(7) NOT NULL,
locker_taken BOOL NOT NULL,
deposit_paid BOOL NOT NULL,
PRIMARY KEY (locker_id)
);
以下是插入脚本:
INSERT INTO `locker` (`locker_id`,`locker_taken`,`deposit_paid`) VALUES
("LK1","0","0"),
("LK2","0","0"),
("LK3","0","0"),
("LK4","0","0"),
("LK5","0","0"),
("LK6","0","0"),
("LK7","0","0"),
("LK8","0","0"),
("LK9","0","0"),
("LK10","0","0");
这是触发因素:
CREATE TRIGGER locker_availability_update
AFTER INSERT
ON locker_possession
FOR EACH ROW
UPDATE locker
BEGIN
SET locker_taken = 1 WHERE locker.locker_id = NEW.locker_id;
如果任何人有任何想法或能以任何方式提供帮助,我们将不胜感激
提前感谢。开始的放错了位置,应该有一个结束的。在MySQL中,我建议:
DELIMITER $$
CREATE TRIGGER locker_availability_update
AFTER INSERT ON locker_possession FOR EACH ROW
BEGIN
UPDATE locker
SET locker_taken = 1
WHERE locker.locker_id = NEW.locker_id;
END; $$
奇怪的语法-删除begin语句。如果从WHERE
子句中删除locker
会发生什么?类似于WHERE locker\u id=NEW.locker\u id
@P.Salmon的东西,非常有效。非常感谢。
CREATE TRIGGER locker_availability_update
AFTER INSERT
ON locker_possession
FOR EACH ROW
UPDATE locker
BEGIN
SET locker_taken = 1 WHERE locker.locker_id = NEW.locker_id;
DELIMITER $$
CREATE TRIGGER locker_availability_update
AFTER INSERT ON locker_possession FOR EACH ROW
BEGIN
UPDATE locker
SET locker_taken = 1
WHERE locker.locker_id = NEW.locker_id;
END; $$