目录
1.当IDENTITY_INSERT 为OFF时,往表b1中插入2条数据,往标识列中手动插入显示值:
2.当IDENTITY_INSERT 为ON时,往表b1中插入2条数据,往标识列中手动插入显示值:
首页 数据库 mysql教程 深入了解sql IDENTITY_INSERT,聊聊其对标识列的作用

深入了解sql IDENTITY_INSERT,聊聊其对标识列的作用

Jun 07, 2016 pm 05:44 PM
sql

本篇文章带大家了解下sql IDENTITY_INSERT,介绍一下sql IDENTITY_INSERT对标识列的作用,希望对大家有帮助。

深入了解sql IDENTITY_INSERT,聊聊其对标识列的作用

一般情况下,当数据表中,莫一列被设置成了标识列之后,是无法向标识列中手动的去插入标识列的显示值。但是,可以通过设置SET IDENTITY_INSERT属性来实现对标识列中显示值的手动插入。

写法:

1).SET IDENTITY_INSERT 表名 ON :表示开启对标识列显示值插入模式,允许对标识列显示值进行手动插入数据。

2).SET IDENTITY_INSERT 表名 OFF:表示关闭对标识列显示值的插入操作,标识列不允许手动插入显示值。

注意:IDENTITY_INSERT的开启ON和关闭OFF是成对出现的,所以,在执行完手动插入操作之后,记得一定要把IDENTITY_INSERT设置为OFF,否则下次的自动插入数据会插入失败。

例如:

创建一张表b1,b_id为标识列,设置为唯一标识,从1开始,每次插入新数据时,值都递增1,不允许为空:

CREATE table b1
(
  b_id int identity(1,1) primary key not null,   
  b_name varchar(20) null
)

当把表b1中b_id这一列设置为唯一标识列的时候,IDENTITY_INSERT属性的值就默认被设置为了OFF了。标识列b_id列不允许手动去插入显示值,只能由系统自动按照排顺序去插入显示的值。

1.当IDENTITY_INSERT 为OFF时,往表b1中插入2条数据,往标识列中手动插入显示值:

 代码1:

 insert into b1(b_id,b_name) values(1,'莉莉')
 insert into b1(b_id,b_name) values(2,'阿呆')

插入结果:

代码2:

 insert into b1(b_name) values('莉莉')
 insert into b1(b_name) values('阿呆')

插入结果:

说明:当把IDENTITY_INSERT设置为OFF时,标识列是不允许手动插入显示值的,只能有系统去自动插入标识列的显示值。

2.当IDENTITY_INSERT 为ON时,往表b1中插入2条数据,往标识列中手动插入显示值:

代码1:

set identity_insert b1 on --开启对标识列的插入模式,标识列允许手动插入显示值

insert into b1(b_id,b_name) values(8,'小白')  --手动去插入标识列b_id的显示值为8
insert into b1(b_id,b_name) values(9,'小黑')

set identity_insert b1 off --关闭对标识列的插入操作,标识列不允许手动插入显示值

插入结果:

代码2:

set identity_insert b1 on --开启对标识列的插入模式,标识列允许手动插入显示值

insert into b1(b_name) values('小胖')  --手动去插入标识列b_id的显示值为8
insert into b1(b_name) values('小宝')

set identity_insert b1 off --关闭对标识列的插入操作,标识列不允许手动插入显示值

插入结果:

说明:当设置IDENTITY_INSERT为ON时,必须要指定标识列中要插入的的显示值,要手动的插入标识列中的显示值。因为系统将不再对标识列的显示值自动插入了。所以,必须要手动去给标识列插入显示值。

推荐学习:mysql视频教程

本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

热AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover

AI Clothes Remover

用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool

Undress AI Tool

免费脱衣服图片

Clothoff.io

Clothoff.io

AI脱衣机

AI Hentai Generator

AI Hentai Generator

免费生成ai无尽的。

热门文章

R.E.P.O.能量晶体解释及其做什么(黄色晶体)
2 周前 By 尊渡假赌尊渡假赌尊渡假赌
仓库:如何复兴队友
4 周前 By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island冒险:如何获得巨型种子
4 周前 By 尊渡假赌尊渡假赌尊渡假赌

热工具

记事本++7.3.1

记事本++7.3.1

好用且免费的代码编辑器

SublimeText3汉化版

SublimeText3汉化版

中文版,非常好用

禅工作室 13.0.1

禅工作室 13.0.1

功能强大的PHP集成开发环境

Dreamweaver CS6

Dreamweaver CS6

视觉化网页开发工具

SublimeText3 Mac版

SublimeText3 Mac版

神级代码编辑软件(SublimeText3)

Hibernate 框架中 HQL 和 SQL 的区别是什么? Hibernate 框架中 HQL 和 SQL 的区别是什么? Apr 17, 2024 pm 02:57 PM

HQL和SQL在Hibernate框架中进行比较:HQL(1.面向对象语法,2.数据库无关的查询,3.类型安全),而SQL直接操作数据库(1.与数据库无关的标准,2.可执行复杂查询和数据操作)。

Oracle SQL中除法运算的用法 Oracle SQL中除法运算的用法 Mar 10, 2024 pm 03:06 PM

《OracleSQL中除法运算的用法》在OracleSQL中,除法运算是常见的数学运算之一。在数据查询和处理过程中,除法运算可以帮助我们计算字段之间的比例或者得出特定数值的逻辑关系。本文将介绍OracleSQL中除法运算的用法,并提供具体的代码示例。一、OracleSQL中除法运算的两种方式在OracleSQL中,除法运算可以使用两种不同的方式进行

SQL中的identity属性是什么意思? SQL中的identity属性是什么意思? Feb 19, 2024 am 11:24 AM

SQL中的Identity是什么,需要具体代码示例在SQL中,Identity是一种用于生成自增数字的特殊数据类型,它常用于唯一标识表中的每一行数据。Identity列通常与主键列配合使用,可以确保每条记录都有一个独一无二的标识符。本文将详细介绍Identity的使用方式以及一些实际的代码示例。Identity的基本使用方式在创建表时,可以使用Identit

Oracle和DB2的SQL语法比较与区别 Oracle和DB2的SQL语法比较与区别 Mar 11, 2024 pm 12:09 PM

Oracle和DB2是两个常用的关系型数据库管理系统,它们都有自己独特的SQL语法和特点。本文将针对Oracle和DB2的SQL语法进行比较与区别,并提供具体的代码示例。数据库连接在Oracle中,使用以下语句连接数据库:CONNECTusername/password@database而在DB2中,连接数据库的语句如下:CONNECTTOdataba

详解MyBatis动态SQL标签中的Set标签功能 详解MyBatis动态SQL标签中的Set标签功能 Feb 26, 2024 pm 07:48 PM

MyBatis动态SQL标签解读:Set标签用法详解MyBatis是一个优秀的持久层框架,它提供了丰富的动态SQL标签,可以灵活地构建数据库操作语句。其中,Set标签是用于生成UPDATE语句中SET子句的标签,在更新操作中非常常用。本文将详细解读MyBatis中Set标签的用法,以及通过具体的代码示例来演示其功能。什么是Set标签Set标签用于MyBati

SpringBoot如何加密配置文件的SQL账号密码 SpringBoot如何加密配置文件的SQL账号密码 May 22, 2023 pm 08:50 PM

1、在Maven项目中引入依赖com.github.ulisesbocchiojasypt-spring-boot-starter2.1.02、同时需要在application.yml配置文件中先配置密码因为工具是使用该密码进行加密或者解密的,所以必须保证配置中加密后的串是使用同一密码加密的,否则项目启动时也解密不了。jasypt:encryptor:password:1234563、可以在测试用例中对原信息进行加密,使用方法很简单。简单的Demo如下:@RunWith(SpringRunner

java怎么通过MySQL驱动拦截器实现执行sql耗时计算 java怎么通过MySQL驱动拦截器实现执行sql耗时计算 May 27, 2023 pm 01:10 PM

背景公司的一个需求,公司既有的链路追踪日志组件要支持MySQL的sql执行时间打印,要实现链路追踪常用的手段就是实现第三方框架或工具提供的拦截器接口或者是过滤器接口,对于MySQL也不例外,实际上就是实现了MySQL驱动的拦截器接口而已。具体实现MySQL的渠道有不同的版本,不同版本的拦截器接口是不同的,所以要针对你所使用的不同版本的MySQL驱动去实现响应的拦截器,接下来分别介绍下MySQL渠道5,6,8版本的实现方式。MySQL5这里以MySQL渠道5.1.18版本为例实现,实现Statem

SQL出现5120错误怎么解决 SQL出现5120错误怎么解决 Mar 06, 2024 pm 04:33 PM

解决办法:1、检查登录用户是否具有足够的权限来访问或操作该数据库,确保该用户具有正确的权限;2、检查SQL Server服务的帐户是否具有访问指定文件或文件夹的权限,确保该帐户具有足够的权限来读取和写入该文件或文件夹;3、检查指定的数据库文件是否已被其他进程打开或锁定,尝试关闭或释放该文件,并重新运行查询;4、尝试以管理员身份运行Management Studio等等。

See all articles