mysql 中 AUTO_INCREMENT 是什么意思为什么必须和主键搭配
AUTO_INCREMENT的是随着你数据库里面数据项的增加而自动增加值的一个属性,一般在像MYSQL这种数据库里,主键一般都是用ID号,比如学生的学号,公民的身份证号等,这种ID号是唯一的,是可以唯一标识数据库里面的一项数据的,而这种ID号并不需要自己动手去一个个输入,直接通过设置AUTO_INCREMENT就可以从小到大自动生成了。
扩展资料:
如果希望在每次插入新记录时,自动地创建主键字段的值。可以在表中创建一个 auto-increment 字段。MySQL 使用 AUTO_INCREMENT 关键字来执行 auto-increment 任务。默认地AUTO_INCREMENT 的开始值是 1,每条新记录递增 1。
主键又称主关键字,主关键字(primary key)是表中的一个或多个字段,它的值用于唯一地标识表中的某一条记录。在两个表的关系中,主关键字用来在一个表中引用来自于另一个表中的特定记录。主关键字是一种唯一关键字,表定义的一部分。一个表的主键可以由多个关键字共同组成,并且主关键字的列不能包含空值。主关键字是可选的,并且可在 CREATE TABLE 或 ALTER TABLE 语句中定义。
CREATE TABLE `zimu` (
`id` smallint(6) unsigned NOT NULL auto_increment,
`zimu` varchar(16) NOT NULL default '',
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1
id 字段设置了 auto_increment 属性后,必须设置为主键 PRIMARY KEY (`id`)。
建立后表是空的,插入一条记录 insert into `zimu` VALUES (NULL, 'a'),这个时候表里的第一条记录内容就是 1,'a' ;再插入一次 insert into `zimu` VALUES (NULL, 'a'),这个时候表里的第二条记录内容就是 2,'a'。auto_increment 就是对主键 id 自动增加编号的。
如果你想 为你插入的一条记录 获得一个唯一性的编号,那就需要用主键。
例:
CREATE TABLE TABLE_1
(
ID INT UNSIGNED NOT NULL PRIMARY KEY AUTO_INCREMENT,
// ID列为无符号整型,该列值不可以为空,并不可以重复,而且自增。
NAME VARCHAR(5) NOT NULL
)
AUTO_INCREMENT = 100;(ID列从100开始自增)
PRIMAPY是主键的意思,表示定义的该列值在表中是唯一的意思,不可以有重复。
UNSIGNED是无符号的意思,代表该字段没有正负。
AUTO_INCREMENT可以理解为自动递增的意思,每增加一条记录,值会自动加1。(例如在上面的例子中,ID列每增加一条记录,便会从100自增) 。
我想通过上面的例子,你应该可以理解一些了,不明白再问我。谢谢。
有些数据库是用sequence来起这个作用。
作为一个自增长字段,只有作为主键时才有意义啊,你还想用它干什么?
参考资料: http://blogold.chinaunix.net/u1/48901/showart.php?id=392987
广告 您可能关注的内容 |