首页 > 解决方案 > 错误代码:1136。列数与第 1 行的值计数不匹配,我找不到错误

问题描述

我不明白为什么这不会执行:

use dbstudents;

INSERT INTO `student` VALUES 

(1,'Ricky','House','rickyhouse@gmail.com'),
(2,'Leo','Graham','leograham@gmail.com'),
(3,'Spencer','Hudson','sepncerhudson@gmail.com'),
(4,'Tucker','Burke','tuckerburke@gmail.com'),
(5,'Korbin','Cruz','korbincruz@gmail.com');

完整的sql:

    CREATE DATABASE  IF NOT EXISTS `dbstudents`;
USE `dbstudents`;


SET FOREIGN_KEY_CHECKS = 0;

DROP TABLE IF EXISTS `student_detail`;

CREATE TABLE `student_detail` (
    `id` int(11) NOT NULL AUTO_INCREMENT,
    `city` varchar(45) DEFAULT NULL,
    `phone_number` int(10) DEFAULT NULL,
    `favourite_language` varchar(45) DEFAULT NULL,

  PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=latin1;

DROP TABLE IF EXISTS `student`;

CREATE TABLE `student` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `first_name` varchar(45) DEFAULT NULL,
  `last_name` varchar(45) DEFAULT NULL,
  `email` varchar(45) DEFAULT NULL,
  `student_detail_id` int (11) DEFAULT NULL,
  PRIMARY KEY (`id`),
   KEY `FK_DETAIL_idx` (`student_detail_id`),
  CONSTRAINT `FK_DETAIL` FOREIGN KEY (`student_detail_id`) REFERENCES `student_detail` (`id`) ON DELETE NO ACTION ON UPDATE NO ACTION
) ENGINE=InnoDB AUTO_INCREMENT=6 DEFAULT CHARSET=latin1;

我只是找不到错误在哪里,尝试再次输入,但没有任何改变,有什么建议吗?我真的不知道

标签: mysqlsqlmysql-workbench

解决方案


您需要定义您希望输入的值,即自动增量,不需要添加。

所以做类似的事情

INSERT INTO `student` (`first_name`,`last_name`,`email`) VALUES 

('Ricky','House','rickyhouse@gmail.com'),
('Leo','Graham','leograham@gmail.com'),
('Spencer','Hudson','sepncerhudson@gmail.com'),
('Tucker','Burke','tuckerburke@gmail.com'),
('Korbin','Cruz','korbincruz@gmail.com');

推荐阅读