插入到两个表之间不会重置自动增量

时间:2016-06-23 14:00:46

标签: mysql sql

我有这个脚本:

#create departments table
CREATE TABLE `departments` (
  `department_id` int(11) NOT NULL AUTO_INCREMENT,
  `department_name` varchar(45) DEFAULT NULL,
  PRIMARY KEY (`department_id`)
) ENGINE=InnoDB AUTO_INCREMENT=10 DEFAULT CHARSET=utf8;

#inserts - departments table
INSERT INTO `departments`(`department_name`)VALUES("Parks and recreation");
INSERT INTO `departments`(`department_name`)VALUES("Portable immediate treatment");
INSERT INTO `departments`(`department_name`)VALUES("Veterinary");
INSERT INTO `departments`(`department_name`)VALUES("Gardening");
INSERT INTO `departments`(`department_name`)VALUES("Business Registration");
INSERT INTO `departments`(`department_name`)VALUES("Environment");
INSERT INTO `departments`(`department_name`)VALUES("Sanitation");
INSERT INTO `departments`(`department_name`)VALUES("Recycling");
INSERT INTO `departments`(`department_name`)VALUES("all");

#create departments_in_langueage table
CREATE TABLE `departments_in_language` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `department_id` int(11) DEFAULT NULL,
  `language` varchar(45) DEFAULT NULL,
  `description` varchar(45) DEFAULT NULL,
  PRIMARY KEY (`id`),
  KEY `departments_in_language_department_id_idx` (`department_id`),
  CONSTRAINT `departments_in_language_department_id` FOREIGN KEY (`department_id`) REFERENCES `departments` (`department_id`) ON DELETE NO ACTION ON UPDATE NO ACTION
) ENGINE=InnoDB AUTO_INCREMENT=9 DEFAULT CHARSET=utf8;

#inserts - departments_in_language table
INSERT INTO `departments_in_language`(`department_id`,`language`,`description`)VALUES("1","hebrew","חזות העיר");
INSERT INTO `departments_in_language`(`department_id`,`language`,`description`)VALUES("2","hebrew","ניידת טיפול מיידי");
INSERT INTO `departments_in_language`(`department_id`,`language`,`description`)VALUES("3","hebrew","ווטרינריה");
INSERT INTO `departments_in_language`(`department_id`,`language`,`description`)VALUES("4","hebrew","גינון");
INSERT INTO `departments_in_language`(`department_id`,`language`,`description`)VALUES("5","hebrew","רישוי עסקים");
INSERT INTO `departments_in_language`(`department_id`,`language`,`description`)VALUES("6","hebrew","איכות הסביבה");
INSERT INTO `departments_in_language`(`department_id`,`language`,`description`)VALUES("7","hebrew","תברואה");
INSERT INTO `departments_in_language`(`department_id`,`language`,`description`)VALUES("8","hebrew","מיחזור");
INSERT INTO `departments_in_language`(`department_id`,`language`,`description`)VALUES("9","hebrew","כללי");

Departments_in_language的字段名为=" department_id" (外键)。 问题: 当我运行这个脚本时,我得到了一些错误:

Cannot add or update a child row: a foreign key constraint fails (`teres`.`departments_in_language`, CONSTRAINT `departments_in_language_department_id` FOREIGN KEY (`department_id`) REFERENCES `departments` (`department_id`) ON DELETE NO ACTION ON UPDATE NO )

我看到department_in_language的Id不是从1开始的, 这意味着" auto"的反击。插入之间没有重置; 这就是错误的原因。 我该怎么办?

1 个答案:

答案 0 :(得分:0)

您的表创建查询将AUTO_INCREMENT设置为10 AND 9.应将其设置为1.

#create departments table
CREATE TABLE `departments` (
  [...]
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8;

#create departments_in_langueage table
CREATE TABLE `departments_in_language` (
  [...]
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8;
相关问题