繁体   English   中英

错误代码:1136。列计数与第 1 行的值计数不匹配,为什么?

[英]Error Code: 1136. Column count doesn't match value count at row 1 why?

USE Airline;

CREATE TABLE Responsible_for(
Time_work TIME NOT NULL,
date_work DATE NOT NULL,
Staff_ID INT NOT NULL,
Passenger_ID VARCHAR(45) NOT NULL,
 CONSTRAINT FOREIGN KEY(Passenger_ID) REFERENCES Passenger(Passenger_ID),
 CONSTRAINT FOREIGN KEY(Staff_ID) REFERENCES Staff(Staff_ID));

SELECT * FROM airline.Responsible_for;
INSERT INTO  Responsible_for VALUES(
    ('04:00:00','2019-04-01',1235,'1102546778'));

为什么有错误? 谢谢你

您在不应存在的值列表周围有一对额外的括号。

那应该是:

INSERT INTO Responsible_for(time_work, date_work, staff_id, passenger_id) 
VALUES ('04:00:00','2019-04-01',1235,'1102546778');

笔记:

  • 总是枚举要insert的列是一个好习惯; 这可以防止难以调试的问题,并且可以使代码对目标表结构的变化具有弹性

  • 您在脚本的开头use airline ,因此无需在insert语句中为表名加上模式名称前缀

  • 我建议不要将日期和时间组件存储在单独的列中; 当您需要将它与日期时间进行比较时,这会使事情变得不必要地复杂(并且效率降低); MySQL 具有datetime数据类型,这意味着将两者存储在一起

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM