SqlServer Mysql数据库修改自增列的值及相应问题的解决方案是怎样的

技术SqlServer Mysql数据库修改自增列的值及相应问题的解决方案是怎样的今天就跟大家聊聊有关SqlServer Mysql数据库修改自增列的值及相应问题的解决方案是怎样的,可能很多人都不太了解,为了让大家更加了

今天跟大家聊聊如何修改SqlServer Mysql数据库的自加值,以及相应问题的解决方法。可能很多人不太了解。为了让大家更好的了解,边肖为大家总结了以下内容。希望大家能从这篇文章中有所收获。

SQL Server 平台修改自增列值

我之前尝试过更改sql server数据库的自增量值,但是严禁用sql语句修改自增量值,会直接报错(标识列‘自增量列名’无法更新)。我在2008年、2012年和2014年测试的Sql server,都是不允许更改自增列值的。我认为SQL Server 2005的环境不允许更改字段列值。

如果必须在SQL Server平台上修改自增列值,需要手动添加自增列属性,然后修改列值,修改成功后再手动添加自增列属性。如果构建环境是修改和自添加的,建议在空闲时间(零点以后,平台或网站用户少的时期)处理这类问题。如果数据量大,多个表相关,那就通过T-SQL进行更改。这种方法最大的缺点是手工取消和添加自增属性。

还有一个方法。首先将需要修改的数据组织成T-SQL插入脚本,然后删除这批需要修改的数据,这是通过显示插入的数据来实现的。这种方法适用于需要大量修改的单表记录,而且灵活。

一个更简单的方法,就是如果只有几项,让操作人员重新发布信息,删除之前的数据。

还有就是通过网上修改的T-SQL语句取消自增属性。我没有通过SQL Server 2005的环境测试,对应的T-SQL代码如下:

exec sys . sp _ config @ config name=' allowupdates ',-varchar(35)@ config value=1;-intexecsys . sp _ config @ config name=' showadvancedoptions ',-varchar(35)@ config value=1;-IntraconfigureWithoverride;goupdatesys . syscolumssetcolstat=1 where ID=OBJECT _ ID(N ' primarykeyandiidentyupdatetestdatatable ',' U ')和name=N ' ID ' and lstat=1;updatesys . columns tis _ identity=0 where OBJECT _ ID=OBJECT _ ID(N ' primarykeyandientityupdatetestdatatable ',' U ')和name=N ' ID ' andis _ identity=1;实施后的结果如下:

MySQL 平台修改自增列值

mysql平台修改自增值比较麻烦。mysql中有一个自增栏。如果其引擎是myisam,则该列可以是独立的主键列或复合主键列,也就是说,它必须是主键的关联列。如果其引擎是innodb,则该列必须是独立的主键列。绝对不可能直接修改两个自增列值的变化。

我的方法是将两个自增量值(如1和2)分成以下三步:1。首先,将自增量值1改为0;2.将自增量值2更改为1;3.将自增量值0更改为2;

下面两个数据引擎的测试环境是mysql 5.6。

在数据库引擎为innodb的前提下,具体的mysql测试代码如下:

droppetableifexistsidentity _ datatable;create table identity _ datatable(IDENTNOtNullAutO _ INVENTURE,namevarchar(10)notnull,primarykey(id))engine=innodb,defaultcharset=utf8插入identity_datatable(id,name)值(1,'

;1'),(2,'2');insert into identity_datatable (id, name)values (3, '3'),(4,'4');select *from identity_datatable;-- 直接修改不可行-- update identity_datatable-- set id = case when id = 1 then 2 when id = 2 then 1 end-- where id in (1, 2);update identity_datatableset id = 0where id = 1;update identity_datatableset id = 1where id = 2;update identity_datatableset id = 2where id = 0;select *from identity_datatable;

未修改前的数据表结果,如下图:

修改后的数据表结果,如下图:

注意:

1、采用了两个数字进行交换的方法。2、引入的中间值最好<=0的数字。3、仅仅提供一种解决方法,也可采用sql server平台的修改方法(1、先取消自增属性后变更最后增加自增属性,2、整理T-SQL脚本重新插入----小数据量时可以;3、运营人员手工重新添加,也是数据量小的情况下)。

数据库引擎为myisam的前提下,具体的mysql测试代码如下:

drop table if exists autoincremenet_datatable_myisam;create table autoincremenet_datatable_myisam (tid int not null,id int not null auto_increment,name varchar(20) not null,primary key(id)) engine = myisam, default charset = utf8;insert into autoincremenet_datatable_myisam (tid, id, name)values(1,1,'a'),(2,2,'b'),(3,3,'c'),(4,4,'d');select *from autoincremenet_datatable_myisam;update autoincremenet_datatable_myisamset id = 0;where id = 1;select *from autoincremenet_datatable_myisam;update autoincremenet_datatable_myisamset id = 1;where id = 2;select *from autoincremenet_datatable_myisam;update autoincremenet_datatable_myisamset id = 2;where id = 0;select *from autoincremenet_datatable_myisam;

注意:

1、以上测试中的变更不可行。

2、疑问“第一条update和其后面的select确实看到了修改后的值,但是随后的sql继续执行,均报错却又恢复了未修改之前的状态“,这个还不清楚,需要继续研究。

看完上述内容,你们对SqlServer Mysql数据库修改自增列的值及相应问题的解决方案是怎样的有进一步的了解吗?如果还想了解更多知识或者相关内容,请关注行业资讯频道,感谢大家的支持。

内容来源网络,如有侵权,联系删除,本文地址:https://www.230890.com/zhan/127856.html

(0)

相关推荐

  • 抖音刷赞网站,抖音加粉刷赞平台自助?

    技术抖音刷赞网站,抖音加粉刷赞平台自助?相信大家都喜欢刷抖音、看抖音的习惯,仿佛都中了抖音的毒,戒也戒不掉,一天不看抖音总觉得少了什么,可是大家又知不知道,看抖音到底有哪些危害呢?今天小编就来给大家讲一讲,希望能给大家提

    测评 2021年11月9日
  • 黑眼圈,快速去除黑眼圈的好方法有哪些

    技术黑眼圈,快速去除黑眼圈的好方法有哪些黑眼圈的形成原因比较复杂,总体可以按照成因分为以下2类黑眼圈:1、色素沉积型:一般为茶褐色,多由于日晒、不恰当的化妆和卸妆等导致的皮肤色素沉着。解决对策上应以减少色素沉积、促进黑色

    生活 2021年10月20日
  • 辣椒炒鸡蛋的家常做法,青椒炒蛋炒辣椒要放油吗

    技术辣椒炒鸡蛋的家常做法,青椒炒蛋炒辣椒要放油吗肯定需要放油的辣椒炒鸡蛋的家常做法,煎鸡蛋所需的一、准备材料 主料:鸡蛋 200克辅料:辣椒(青、尖) 50克
    调料:植物油60克 料酒25克 盐 3克 各适量
    椒切细,鸡

    生活 2021年10月25日
  • Ubuntu 18.04 LTS的网络经常变成问号导致网速很慢的解决办法

    技术Ubuntu 18.04 LTS的网络经常变成问号导致网速很慢的解决办法 Ubuntu 18.04 LTS的网络经常变成问号导致网速很慢的解决办法问题描述:
    Ubuntu系统Gnome桌面顶部栏的网

    礼包 2021年11月12日
  • PostgreSQL物理备份工具pg_rman目怎么用

    技术PostgreSQL物理备份工具pg_rman目怎么用这篇文章给大家分享的是有关PostgreSQL物理备份工具pg_rman目怎么用的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。OS:

    攻略 2021年11月25日
  • 入门web前端开发必须知道的开发工具有哪些

    技术入门web前端开发必须知道的开发工具有哪些这篇文章主要介绍“入门web前端开发必须知道的开发工具有哪些”,在日常操作中,相信很多人在入门web前端开发必须知道的开发工具有哪些问题上存在疑惑,小编查阅了各式资料,整理出

    攻略 2021年11月5日