我已经计算并重新计算了很多次以确保插入的数据与列的数量相同并且它仍然给我
<块引用>错误代码:1136。列数与第 1 行的值数不匹配
INSERT INTO WebsiteBooking
(WBCustomerName, WBEmail, WBHomeAddress,
WBPhoneNumber, WBWorkshop, WBWorkshopDate,
WBDateMade)
VALUES ('George Frank', 'Frank.George@gmail.com', '5 Dayboro Road, Queensland, 4521',
'0411255635', '1', '2021-07-09' ,
'2021-03-17' );
我不知道为什么会这样。我看到另一个与此类似的问题,它说它与自动增量有关,我已经删除了自动增量以及另一个它可能是触发器的问题
DROP TRIGGER IF EXISTS auto_insert_to_Customer_Booking;
DELIMITER $$
CREATE TRIGGER auto_insert_to_Customer_Booking
AFTER INSERT ON WebsiteBooking
FOR EACH ROW
BEGIN
INSERT INTO Customer VALUES (new.WBCustomerName, new.WBEmail, new.WBHomeAddress, new.WBPhoneNumber);
INSERT INTO Booking VALUES (new.WBCustomerName, new.WBWorkshop, new.WBWorkshopDate, new.WBDateMade);
END$$
DELIMITER ;
CREATE TABLE WebsiteBooking(
WBBookingID INT,
WBCustomerName VARCHAR(50) ,
WBEmail VARCHAR(50),
WBHomeAddress VARCHAR(50),
WBPhoneNumber VARCHAR(10),
WBWorkshop VARCHAR(50),
WBWorkshopDate DATE,
WBDateMade DATE,
PRIMARY KEY (WBBookingID)
);
答案 0 :(得分:0)
请在将 WBBookingID 列更改为 AUTO_INCREMENT 后进行检查。
ALTER TABLE WebsiteBooking
MODIFY COLUMN WBBookingID
INT NOT NULL UNIQUE AUTO_INCREMENT FIRST;
答案 1 :(得分:0)
正如我在上面的评论中提到的,因为 WBBookingID INT 不是自动递增的值,您需要将其添加到插入列表中,或者使 WBBookingID 成为自动递增的值。
INSERT INTO WebsiteBooking
(WBBookingID, WBCustomerName, WBEmail, WBHomeAddress,
WBPhoneNumber, WBWorkshop, WBWorkshopDate,
WBDateMade)
VALUES (1, 'George Frank', 'Frank.George@gmail.com'
,'5 Dayboro Road, Queensland, 4521', '0411255635', '1'
,'2021-07-09' , '2021-03-17' );
或
CREATE TABLE WebsiteBooking (
WBBookingID INT NOT NULL AUTO_INCREMENT
,WBCustomerName VARCHAR(50)
,WBEmail VARCHAR(50)
,WBHomeAddress VARCHAR(50)
,WBPhoneNumber VARCHAR(10)
,WBWorkshop VARCHAR(50)
,WBWorkshopDate DATE
,WBDateMade DATE
,PRIMARY KEY (WBBookingID)
);