代码没有问题。当您创建如下表时
CREATE TABLE test (
machine_id int NOT NULL AUTO_INCREMENT,
machine_desc varchar(64) DEFAULT NULL,
product_family varchar(64) DEFAULT NULL,
factory varchar(64) DEFAULT NULL,
model varchar(64) DEFAULT NULL,
size varchar(64) DEFAULT NULL,
PRIMARY KEY (machine_id)
) ENGINE = INNODB ;
然后使用命令show create table test
你会看到一些东西
| test | CREATE TABLE `test` (
`machine_id` int(11) NOT NULL AUTO_INCREMENT,
`machine_desc` varchar(64) DEFAULT NULL,
`product_family` varchar(64) DEFAULT NULL,
`factory` varchar(64) DEFAULT NULL,
`model` varchar(64) DEFAULT NULL,
`size` varchar(64) DEFAULT NULL,
PRIMARY KEY (`machine_id`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1 |
现在为什么不显示AUTO_INCREMENT = 1,因为如果它在开始时设置为 1,那么它不会显示,这意味着它设置为 1,这是隐含的,但是如果您创建与上表相同的表格
CREATE TABLE test (
machine_id int NOT NULL AUTO_INCREMENT,
machine_desc varchar(64) DEFAULT NULL,
product_family varchar(64) DEFAULT NULL,
factory varchar(64) DEFAULT NULL,
model varchar(64) DEFAULT NULL,
size varchar(64) DEFAULT NULL,
PRIMARY KEY (machine_id)
) ENGINE = INNODB AUTO_INCREMENT = 2 ;
然后show create table test会显示为
| test | CREATE TABLE `test` (
`machine_id` int(11) NOT NULL AUTO_INCREMENT,
`machine_desc` varchar(64) DEFAULT NULL,
`product_family` varchar(64) DEFAULT NULL,
`factory` varchar(64) DEFAULT NULL,
`model` varchar(64) DEFAULT NULL,
`size` varchar(64) DEFAULT NULL,
PRIMARY KEY (`machine_id`)
) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=latin1 |
由于主键不再是 1 并且表描述会显示 auto_incremented 值的最后一个 id 在哪里。
如果您需要了解数据库中表的其他详细信息,您可能需要使用以下命令作为
show table status from your_db_name \G
你可能会得到一些东西
mysql> show table status from test \G
*************************** 1. row ***************************
Name: test
Engine: InnoDB
Version: 10
Row_format: Compact
Rows: 0
Avg_row_length: 0
Data_length: 16384
Max_data_length: 0
Index_length: 0
Data_free: 12582912
Auto_increment: 2
Create_time: 2014-05-23 16:39:08
Update_time: NULL
Check_time: NULL
Collation: latin1_swedish_ci
Checksum: NULL
Create_options:
Comment: