mysql - 标识列
#标识列
/*
又称为自增长列
含义:可以不用手动插入值,系统提供默认的序列值 特点:
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 - 标识列的更多相关文章
- MySQL标识列(自增长列)
#标识列/*又称为自增长列含义:可以不用手动的插入值,系统提供默认的序列值 特点:1.标识列必须和主键搭配吗?不一定,但要求是一个key2.一个表可以有几个标识列?至多一个!3.标识列的类型只能是数值 ...
- (七)MySQL常见的数据类型、约束和标识列
一.MySQL常见数据类型 1.数值型: ①整型:tinyint.smllint.mediumint.int/integer.bigint 图源:尚硅谷李玉婷 案例1:关键表格teacher,分别添加 ...
- MySQL 避免使用字符串类型作为标识列
避免使用字符串类型作为标识列: 消耗空间. 比数字类型慢(MyISAM 中对字符串使用压缩索引,查询会慢). 对于 MD5().UUID() 生成的随机字符串,这些值会分布在很大的空间内,导致 ins ...
- SQL Server解惑——标识列的限制和跳号现象
1:每个表只能创建一个标识列. 如下测试所示,如果表中有一个标识列,新增一个标识列就会遇到错误"Multiple identity columns specified for table ...
- 当 IDENTITY_INSERT 设置为 OFF 时,不能为表 'T_Shell' 中的标识列插入显式值。
--允许将显示值插入表的标识列中-ON:允许 OFF:不允许set identity_insert T_shell ONset identity_insert T_Shell OFF
- SQL:插入指定标识列的数据时候的小错误
异常处理汇总-数据库系列 http://www.cnblogs.com/dunitian/p/4522990.html 后期会在博客首发更新:http://dnt.dkill.net 好久没写标识系 ...
- 当 IDENTITY_INSERT 设置为 OFF 时,不能向表 'OrderList' 中的标识列插入显式值
问题描述:在SQL SERVER 2008中,向数据表中字段插入数据时,会报错,错误如下: 当 IDENTITY_INSERT 设置为 OFF 时,不能向表 'OrderList' 中的标识列插入显式 ...
- sqlserver 插入数据时异常,仅当使用了列列表并且 IDENTITY_INSERT 为 ON 时,才能为表'XXXXX.dbo.XXXXXXXXX'中的标识列指定显式值。
INSERT INTO XXXXXXXXX.dbo.XXXXXXXXX select * from XXXXXXXXX 仅当使用了列列表并且 IDENTITY_INSERT 为 ON 时,才能为表'X ...
- SQL 已有数据的表创建标识列
针对已有数据的表创建标识列: ,) constraint FID_1 primary key(FID)
随机推荐
- EOJ Monthly 2019.2 A. 回收卫星
题目传送门 题意: 你可以询问一个三维坐标,机器会告诉你这个坐标在不在目标圆中, 并且(0,0,0)是一定在圆上的,叫你求出圆心坐标 思路: 因为(0,0,0)一定在圆上,所以我们可以把圆心分成3个坐 ...
- 回溯---Permutations II
47.Permutations II (Medium)](https://leetcode.com/problems/permutations-ii/description/) [1,1,2] hav ...
- python基础篇(完整版)
目录 计算机基础之编程和计算机组成 什么是编程语言 什么是编程 为什么要编程 编程语言的分类 机器语言(低级语言) 汇编语言 高级语言 计算机的五大组成 CPU(相当于人类的大脑) 多核CPU(多个大 ...
- mybatis的<用<![CDATA[]] 忽略解析
1 CDATA 术语 CDATA 指的是不应由 XML 解析器进行解析的文本数据(Unparsed Character Data). 在 XML 元素中,"<" 和 &quo ...
- Linux安装postgresql及基础操作
安装环境说明 系统环境说明 [root@slave1 ~]# cat /etc/redhat-release CentOS Linux release 7.4.1708 (Core) [root@sl ...
- linux机器间建立信任关系
linux机器间建立信任关系 如何建立信任关系 在shell脚本中,需要使用scp命令将本地的文件复制到另一台机器中备份.但通常执行scp命令后都需要输入用户密码,这样在定时自动执行shell脚本中就 ...
- Elasticsearch Java Low Level REST Client(嗅探器)
https://segmentfault.com/a/1190000016828977?utm_source=tag-newest#articleHeader0 嗅探器 允许从正在运行的Elastic ...
- Jupyter配置工作路径
在修改之前,C:\Users\Administrator\ .jupyter 目录下面只有一个“migrated”文件. 打开命令窗口(运行->cmd),进入python的Script目录下输入 ...
- 基于impi zabbix监控r720 测试过程
1.F2进入服务器bios 修改network 使这台服务器能够被远程访问. 2.在远程的centos 7 服务器上安装 impitool工具包 #ipmitool -I lanplus -H X ...
- P2617 Dynamic Rankings(待修改区间第k大)
题目链接:https://www.luogu.org/problemnew/show/P2617 题目: 题目描述 给定一个含有n个数的序列a[1],a[2],a[3]……a[n],程序必须回答这样的 ...