MySQL中创建表时AUTO_INCREMENT的用法

MySQL中创建表时AUTO_INCREMENT的用法


导读:本文介绍了MySQL中创建表时AUTO_INCREMENT的用法。

关键词:AUTO_INCREMENT MySQL数据库 数据库属性 

CREATE TABLE `app` (
  `app_id` smallint(5) unsigned NOT NULL AUTO_INCREMENT,
  `app_name` varchar(200) DEFAULT NULL,
  `app_description` text,
  `app_image` varchar(200) DEFAULT NULL,
  `app_online` tinyint(1) DEFAULT '1',
  PRIMARY KEY `app_id` (`app_id`)
  ) ENGINE=MyISAM AUTO_INCREMENT=12 DEFAULT CHARSET=utf8;
  /*Data for the table `app` */
  insert into `app`(app_id,app_name,app_description,app_image,app_online) values (1,'团购','团购信息','app_1.gif',1),(3,'test2','test2','app_ad0234829205b9033196ba818f7a872b_3.JPG',1),(4,'test2333','test3333','app_afb9b8cacd8dbfe912d6adc619a0f9fe_4.jpg',1),(5,'分类信息','58同城,赶集网,百姓网dd','app_5.gif',1),(6,'记事本','category info why','app_6.gif',0),(7,'音乐','category info ++ why','app_7.gif',1),(8,'网盘','世界上用户体验最好、速度最快的网络硬盘,试试你就知道。','app_8.gif',0),(9,'图书','book','app_9.gif',1);

  在表app的数据中,字段app_id中的最大值为9,而创建表的时候AUTO_INCREMENT=12,则下次通过程序往表app中insert数据,且没有指定字段app_id的值时,下次的app_id将从12开始计算起,而不是10,切记,切记。

  这个功能有什么作用呢?比如有些数据原来是写死的,没有记录到数据库中,后来由于需求变化需要做成动态管理,需要保存到数据库中,而原来有部分app_id已经被使用了,不能用于其它的,此时AUTO_INCREMENT就被派上用场了。

  举个例子,比如app_id为10时用于我的网址(但是我的网址不需要保存到数据库中,因为每个用户必须显示此app,且不需要配置),如果创建表时不指定AUTO_INCREMENT=12,则app_id为10的值将用于新创建的app,将会发生岐义,所以一定要注意。

你可能感兴趣的:(MYSQL)