gpt4 book ai didi

mysql - 错误代码 : 1054. 'credits' 中的未知列 'field list'

转载 作者:行者123 更新时间:2023-11-29 00:15:55 25 4
gpt4 key购买 nike

当我尝试运行此 INSERT INTO 查询时出现此错误:

INSERT INTO Rush (firstName, lastName, schoolYearID, credits, gpa, age, phone, email, statusID, legacy, password)
VALUES ('Greg','Johnson', 1, 22, 2.4, 18, '1235368965', 'gjohnson@umd.edu', 1, 'NR', 'gjohns');

我不太明白为什么会收到此错误,因为此 INSERT INTO 查询在过去已成功运行。我一直在对数据库中的其他表进行一些更改,但我认为这不应该成为问题,因为 credits 列不是外键。此数据库位于 Amazon AWS 上并运行 MySQL 5.6.13。谁能发现我的错误?架构如下:

CREATE TABLE Rush (
rushID INT AUTO_INCREMENT NOT NULL,
firstName VARCHAR (25) NOT NULL,
lastName VARCHAR (25) NOT NULL,
schoolYearID INT NOT NULL,
hometown VARCHAR (25),
homestate VARCHAR (25),
highschool VARCHAR (50),
credits INT UNSIGNED NOT NULL,
gpa DECIMAL (4,3) UNSIGNED NOT NULL,
major VARCHAR (25),
biography VARCHAR (500),
onlinepf VARCHAR (100),
profilePictureURL VARCHAR (200), -- User uploads profile picture to another site, the url will be used in an img tag
age INT NOT NULL,
phone VARCHAR(10) NOT NULL,
email VARCHAR (50) NOT NULL,
statusID INT NOT NULL,
legacy VARCHAR(6) DEFAULT 'NR',
legacyInfo VARCHAR (50),
password VARCHAR (50) NOT NULL,
PRIMARY KEY (rushID),
CONSTRAINT fk_Rush_schoolYearID
FOREIGN KEY (schoolYearID)
REFERENCES School_Year (schoolYearID)
ON UPDATE CASCADE ON DELETE RESTRICT,
CONSTRAINT fk_Rush_statusID
FOREIGN KEY (statusID)
REFERENCES Rush_Status (statusID)
ON UPDATE CASCADE ON DELETE RESTRICT
);

DELIMITER $$
CREATE TRIGGER Rush_Insert BEFORE INSERT ON Rush FOR EACH ROW
BEGIN
IF (NEW.firstName = '') THEN SET NEW.firstName = null; END IF;
IF (NEW.lastName = '') THEN SET NEW.lastName = null; END IF;
IF (NEW.phone = '') THEN SET NEW.phone = null; END IF;
IF (CHAR_LENGTH(NEW.phone) != 10 OR NEW.phone NOT REGEXP '[0-9]') THEN SET NEW.phone = null; END IF;
IF (NEW.email = '') THEN SET NEW.email = null; END IF;
IF (NEW.gpa = '') THEN SET NEW.gpa = null; END IF;
IF (NEW.password = '') THEN SET NEW.password = null; END IF;
IF (NEW.credits = '') THEN SET NEW.credits = null; END IF;
IF (NEW.gpa < 2.5 AND credits < 12) THEN SET NEW.statusID = 0;
ELSE SET NEW.statusID = 1; END IF;
END$$
DELIMITER ;

DELIMITER $$
CREATE TRIGGER Rush_Update BEFORE UPDATE ON Rush FOR EACH ROW
BEGIN
IF (NEW.firstName = '') THEN SET NEW.firstName = null; END IF;
IF (NEW.lastName = '') THEN SET NEW.lastName = null; END IF;
IF (NEW.phone = '') THEN SET NEW.phone = null; END IF;
IF (NEW.email = '') THEN SET NEW.email = null; END IF;
IF (NEW.gpa = '') THEN SET NEW.gpa = null; END IF;
IF (NEW.password = '') THEN SET NEW.password = null; END IF;
IF (NEW.credits = '') THEN SET NEW.credits = null; END IF;
IF (OLD.statusID = 0 AND NEW.gpa >= 2.5 AND credits >= 12) THEN SET NEW.statusID = 1; END IF;
IF (NEW.gpa < 2.5 AND NEW.credits < 12 AND statusID < 2) THEN SET NEW.statusID = 0; END IF;
IF (NEW.gpa > 4) THEN SET NEW.gpa = null; END IF;
END$$
DELIMITER ;

最佳答案

我猜它在引发错误的触发器中

IF (NEW.gpa < 2.5 AND credits < 12) THEN SET NEW.statusID = 0;

应该是

IF (NEW.gpa < 2.5 AND NEW.credits < 12) THEN SET NEW.statusID = 0;

关于mysql - 错误代码 : 1054. 'credits' 中的未知列 'field list',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22997946/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com