#标识列
/*
又称为自增长列
含义:可以不用手动插入值,系统提供默认的序列值 特点:
1.表示列必须和主键搭配吗?不一定,但是要求是一个key
2.一个表中只能有一个标识列!
3.标识列的类型有限制吗?只能是数值类型(int,float,double)
4.标识列可以通过set auto_increment_increment=3;设置步长,
可以通过 手动插入值, 设置起始值 */
#一、创建表时设置标识列
create table tab_identity(
id int primary key,
name varchar(20)
);
show tables;
# 插入数据
insert into tab_identity values(1,"john");
insert into tab_identity values(2,"lily");
#这里的id编号你需要手动输入
select * from tab_identity; 如果你想实现自动的插入id列,你需要
drop table if exists tab_identity;
create table tab_identity(
id int primary key auto_increment,
name varchar(20)
); # 插入数据
insert into tab_identity values(null,"john");
insert into tab_identity values(null,"lily"); insert into tab_identity(name) values("lucy") # 查看变量auto_increment的参数
show variables like "%auto_increment%";
可以通过修改其实变量与步长来修改更新幅度
auto_increment_increment参数:步长
auto_increment_offset参数:起始位置
#修改步长
set auto_increment_increment=3; show variables like "%auto_increment%";
#删除表中的数据
truncate table tab_identity;
select * from tab_identity;
#重新插入数据
insert into tab_identity values(null,"john");
insert into tab_identity values(null,"lily");
insert into tab_identity(name) values("lucy")
这时候表中的id顺序为1,4,7,。。。。 #起始值是不支持类似步长的修改的,如何修改呢?
#删除表中的数据
truncate table tab_identity;
select * from tab_identity;
#重新插入数据
insert into tab_identity values(10,"john");
insert into tab_identity values(null,"lily");
insert into tab_identity(name) values("lucy");
这时候表中的id顺序为10,13,16,。。。。
这个就对起始值进行了修改 #二、修改表时设置标识列(类似修改约束)
#准备表格
drop table if exists tab_identity;
create table tab_identity(
id int,
name varchar(20)
);
show variables like "%auto_increment%";
set auto_increment_increment=1;
desc tab_identity;
#设置标识列
alter table tab_identity modify column id int primary key auto_increment; # 插入数据
insert into tab_identity values(null,"john");
insert into tab_identity values(null,"lily");
insert into tab_identity(name) values("lucy"); #三、修改表时删除标识列
alter table tab_identity modify column id int;
show index from tab_identity;

  

mysql - 标识列的更多相关文章

  1. MySQL标识列(自增长列)

    #标识列/*又称为自增长列含义:可以不用手动的插入值,系统提供默认的序列值 特点:1.标识列必须和主键搭配吗?不一定,但要求是一个key2.一个表可以有几个标识列?至多一个!3.标识列的类型只能是数值 ...

  2. (七)MySQL常见的数据类型、约束和标识列

    一.MySQL常见数据类型 1.数值型: ①整型:tinyint.smllint.mediumint.int/integer.bigint 图源:尚硅谷李玉婷 案例1:关键表格teacher,分别添加 ...

  3. MySQL 避免使用字符串类型作为标识列

    避免使用字符串类型作为标识列: 消耗空间. 比数字类型慢(MyISAM 中对字符串使用压缩索引,查询会慢). 对于 MD5().UUID() 生成的随机字符串,这些值会分布在很大的空间内,导致 ins ...

  4. SQL Server解惑——标识列的限制和跳号现象

      1:每个表只能创建一个标识列. 如下测试所示,如果表中有一个标识列,新增一个标识列就会遇到错误"Multiple identity columns specified for table ...

  5. 当 IDENTITY_INSERT 设置为 OFF 时,不能为表 'T_Shell' 中的标识列插入显式值。

    --允许将显示值插入表的标识列中-ON:允许 OFF:不允许set identity_insert T_shell ONset identity_insert T_Shell OFF

  6. SQL:插入指定标识列的数据时候的小错误

    异常处理汇总-数据库系列  http://www.cnblogs.com/dunitian/p/4522990.html 后期会在博客首发更新:http://dnt.dkill.net 好久没写标识系 ...

  7. 当 IDENTITY_INSERT 设置为 OFF 时,不能向表 'OrderList' 中的标识列插入显式值

    问题描述:在SQL SERVER 2008中,向数据表中字段插入数据时,会报错,错误如下: 当 IDENTITY_INSERT 设置为 OFF 时,不能向表 'OrderList' 中的标识列插入显式 ...

  8. sqlserver 插入数据时异常,仅当使用了列列表并且 IDENTITY_INSERT 为 ON 时,才能为表'XXXXX.dbo.XXXXXXXXX'中的标识列指定显式值。

    INSERT INTO XXXXXXXXX.dbo.XXXXXXXXX select * from XXXXXXXXX 仅当使用了列列表并且 IDENTITY_INSERT 为 ON 时,才能为表'X ...

  9. SQL 已有数据的表创建标识列

    针对已有数据的表创建标识列: ,) constraint FID_1 primary key(FID)

随机推荐

  1. Linux安装Python3以及虚拟环境

    python3的linux环境编译安装 1.linux下安装软件的方式 选则yum工具,方便,自行解决软件之间的依赖关系,自动下载且安装 1.配置yum源 可以选择阿里云源,清华源等 配置第一个仓库, ...

  2. 在eclipse上配置多个jdk

    在实际生产中,可能会遇到这样的问题:在eclipse中存在多个项目时,可能不同的项目需要不同的jdk版本.这时,我们就可以给eclipse配置多个jdk进行切换. 注:貌似只有较新版eclipse才能 ...

  3. SCUT - 131 - 小P玩游戏II - 贪心 - 平衡树

    https://scut.online/p/131 首先假如钦定了一群人去打怪兽,那么可以把主要的任务都丢给b最大的人去打,这样不会更差.然后考虑枚举这个b最大的人,其他人陪练.一开始就是ai+k*b ...

  4. 基于URL的正则匹配

    第一种的方式使用( <li><a target="_blank" href="/CC/detail/?nid={{ k}}">{{ ro ...

  5. VUE:v-for获取列表前n个数据、中间范围数据、末尾n条数据的方法

    说明: 1.开发使用的UI是mintUI, 要求: 1.获取6到13之间的数据:items.slice(6,13) <mt-cell v-for="(item,index) in it ...

  6. go中string类型转换为基本数据类型的方法

    代码 // string类型转基本数据类型 package main import ( "fmt" "strconv" ) func main() { str1 ...

  7. Python之路-numpy模块

    这里是首先需要安装好Anaconda Anaconda的安装参考Python之路-初识python及环境搭建并测试 配置好环境之后开始使用Jupyter Notebook 1.打开cmd,输入 jup ...

  8. CentOS 系统开启防火墙,屏蔽IP,解决DDOS攻击

    刚才发现网站特别慢,然后看了一下服务器状态 CPU 负载100%. 然后看了下网络,发现一个IP一直在请求本服务器的 443 端口,就是本站. 然后在终端通过 iftop 命令(一个流量健康软件,如果 ...

  9. Conference - open source drives IOT from device to edge

    Open source drives IOT from device to edge 以下都是针对IOT领域的项目: ACRN A Big Little Hypervisor for IoT Deve ...

  10. Nginx优化_压缩处理与内存缓存

    对页面进行压缩处理; 服务器内存缓存. 1.对页面进行压缩处理 [root@proxy ~]# cat /usr/local/nginx/conf/nginx.conf http { ... gzip ...