mysqldump、自动递增和插入值

mysqldump、自动递增和插入值,mysql,Mysql,我正在查看生成的mysqldump文件,发现了一些奇怪的东西。创建表格时的自动增量为2。第一个插入使用1。将低于自动增量值的值插入数据库是否有任何错误 DROP TABLE IF EXISTS `phppos_locations`; /*!40101 SET @saved_cs_client = @@character_set_client */; /*!40101 SET character_set_client = utf8 */; CREATE TABLE `phppos_loca

我正在查看生成的mysqldump文件,发现了一些奇怪的东西。创建表格时的自动增量为2。第一个插入使用1。将低于自动增量值的值插入数据库是否有任何错误

DROP TABLE IF EXISTS `phppos_locations`;
/*!40101 SET @saved_cs_client     = @@character_set_client */;
/*!40101 SET character_set_client = utf8 */;
CREATE TABLE `phppos_locations` (
  `location_id` int(11) NOT NULL AUTO_INCREMENT,
  `name` varchar(60) COLLATE utf8_unicode_ci DEFAULT '',
  `address` tinytext COLLATE utf8_unicode_ci,
  `phone` varchar(30) COLLATE utf8_unicode_ci DEFAULT '',
  `fax` varchar(30) COLLATE utf8_unicode_ci DEFAULT '',
  `email` varchar(100) COLLATE utf8_unicode_ci DEFAULT '',
  `receive_stock_alert` int(1) DEFAULT '0',
  `stock_alert_email` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
  `return_policy` text COLLATE utf8_unicode_ci,
  `timezone` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
  `mailchimp_api_key` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
  `enable_credit_card_processing` int(1) DEFAULT NULL,
  `merchant_id` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
  `merchant_password` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
  `default_tax_1_rate` decimal(15,3) DEFAULT NULL,
  `default_tax_1_name` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
  `default_tax_2_rate` decimal(15,3) DEFAULT NULL,
  `default_tax_2_name` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
  `default_tax_2_cumulative` int(1) DEFAULT '0',
  `deleted` int(1) DEFAULT '0',
  PRIMARY KEY (`location_id`),
  KEY `deleted` (`deleted`)
) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
/*!40101 SET character_set_client = @saved_cs_client */;

--
-- Dumping data for table `phppos_locations`
--

LOCK TABLES `phppos_locations` WRITE;
/*!40000 ALTER TABLE `phppos_locations` DISABLE KEYS */;
INSERT INTO `phppos_locations` VALUES (1,'Default','123 Nowhere street','555-555-5555','','admin@phppointofsale.com',NULL,NULL,'Test','America/New_York',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0);
/*!40000 ALTER TABLE `phppos_locations` ENABLE KEYS */;
UNLOCK TABLES;
抄袭

整数或浮点列可以具有附加属性AUTO_INCREMENT。在索引自动增量列中插入NULL(建议)或0值时,该列将设置为下一个序列值。通常这是值+1,其中值是表中当前列的最大值。自动递增序列从1开始

这意味着,如果插入的内容不为NULL或0,则将保留插入内容的副本

整数或浮点列可以具有附加属性AUTO_INCREMENT。在索引自动增量列中插入NULL(建议)或0值时,该列将设置为下一个序列值。通常这是值+1,其中值是表中当前列的最大值。自动递增序列从1开始


这意味着,如果insert不为NULL或0,则将保留插入的内容,
CREATE TABLE
语句中的
AUTO_INCREMENT
值表示MySQL在转储架构时打算用于该表上下一次插入的自动增量值。因为当时表中有一行,并且它的自动增量值为1,所以2是下一个预期值是有意义的


由于insert显式地将location_id设置为1,因此它不会对该行使用自动增量。

CREATE TABLE
语句中的
auto_increment
值表示MySQL打算在转储架构时对该表的下一次插入使用的自动增量值。因为当时表中有一行,并且它的自动增量值为1,所以2是下一个预期值是有意义的

由于insert显式地将location_id设置为1,因此它不对该行使用自动增量