在网上查过一些资料,很多人说,mysql中,只有主键才能设置为自增长列。
经过一些深入的了解,其实并非只有主键才能设自增长,而是设为“键(key)”的列就可以设置自增长。
下面通过几个例子来具体说明一下:
首先是最普通的创建方式:
执行上面的创建语句,会报错,提示there can be only one auto column and it must be defined as a key
差不多就是说,普通列是没办法创建自增长的。
再来看看下面的语句:
语句执行成功了。但是有细心的人会发现,其实ID字段,并不是主键,为了消除疑虑,再来试试将ID设为主键的情况:
结果表名,ID被设为主键了,但是column1还是可以设置为自增长的。现在插入几条数据来测试一下自增长的效果。
可以看到,column的确被设置为了自增长序列。中间一次插入,由于主键重复了,没有插入成功,但是自增长序列,还是用了一次增长。所以第三次插入成功的时候,column1的值是3.
继续执行几条语句来验证一下:
自增长运作的很成功。
接下来我们再来思考一下最开始报错的那句话“there can be only one auto column and it must be defined as a key”
后半句“and it muse be defined as a key”我们已经在上面的测试中解决了
这里需要关注的是前半句“there can be only one auto column” ,意思应该是说,只能设置一列为自增长,为了验证是不是这样,再来执行几条语句来试试:
经过上面几条语句的执行结果不难发现,一张表确实只能设置一个自增长序列。
写到这里,mysql数据库的自增长序列的简单研究初步完成了
得出的结论为:每张表只能设置一个字段为自增长字段,这个字段可以是主键,也可以不是主键,如果不是主键,则必须设置为一种“键(key)”,
其实,主键(primary key)也是键(key)的一种,key还包括外键(foreign key)、唯一键(unique key)等,关于key的讨论可以查看帖子http://zccst.iteye.com/blog/1697043
相关推荐
本文实例讲述了mysql非主键自增长用法。分享给大家供大家参考,具体如下: mysql并非只有主键才能自增长,而是设为键的列就可以设置自增长。 如下: CREATE TABLE t1 ( id INT, col1 INT auto_increment NOT NULL...
mysql用触发器实现char类型主键自增长
mysql取得自动增长的主键值,mysql组织推荐的一种安全的方法!
主键自增长(AUTO_INCREMENT)
一张表,里面有ID自增主键,当insert了17条记录之后,删除了第15,16,17条记录,再把Mysql重启,再insert一条记录,这条记录的ID是18还是15 还是MYSQL的,一张表有还是有ID自增主键,用JDBC insert一条语句之内,怎么在JAVA...
HeidiSQL 是一款用于简单化你的 MySQL 服务器和数据库管理的图形化界面。该软件允许你浏览你的数据库,管理表,浏览和编辑记录,管理用户权限等等。此外,你可以从文本文件导入数据,运行 SQL查询,在两个数据库之间...
1、把主键定义为自动增长标识符类型 在mysql中,如果把表的主键设为auto_increment类型,数据库就会自动为主键赋值。例如: create table customers(id int auto_increment primary key notnull, name varchar(15))...
本篇文章是对Mysql,SqlServer,Oracle主键自动增长的设置进行了详细的分析介绍,需要的朋友参考下
主要介绍了mysql修改自增长主键int类型为char类型示例,需要的朋友可以参考下
Oracle与Mysql不同,不能在CREATE建立表时设置自动增长列功能。 Oracle必须通过创建sequence序列来实现自动增加列的功能。 首先要建立序列(当然必须要先建好表,添加好主键约束,这列假设约束名为test_sequence) ...
1、声明主键的方法: 您可以在创建表的时候就为表加上主键,如: CREATE TABLE tbl_name ([字段描述省略…], PRIMARY KEY(index_col_name)); 也可以更新表结构时为表加上主键,如: ALTER TABLE tbl_name ADD ...
您可能感兴趣的文章:SQL Server设置主键自增长列(使用sql语句实现)oracle中的ID号实现自增长的方法mysql修改自增长主键int类型为char类型示例自增长键列统计信息的处理方法实现oracle数据库字段自增长(两种方式)
数据库操作文件,包含mysql建表,主键自动增长, 添加数据!
1.1:要说明这个问题,我们首先来建立三张表,分别是user_auto_key,user_uuid,user_random_key,分别表示自动增长的主键,uuid作为主键,随机key作为主键,其它我们完全保持不变.根据控制变量法,我们只把每个表的主键使用...
为了更好的讲解,实例中在Mysql数据库中建立一张表chart_pie,用于表示各搜索引擎带来的访问量,表中分别有id、title和pv三个字段,id是自增长整型、主键;title表示搜素引擎的名称,pv表示对应的访问量。chart_pie...
MySQL序列是一组整数:1, 2, 3, …,由于一张数据表只能有一个字段自增主键, 如果你想实现其他字段也实现自动增加,就可以使用MySQL序列来实现。 本章我们将介绍如何使用MySQL的序列。 使用AUTO_INCREMENT MySQL中...