亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 數據庫 > SQL Server > 正文

SqlServer Mysql數據庫修改自增列的值及相應問題的解決方案

2024-08-31 01:03:39
字體:
來源:轉載
供稿:網友
這篇文章主要介紹了SqlServer Mysql數據庫修改自增列的值及相應問題的解決方案的相關資料,需要的朋友可以參考下
 

SQL Server 平臺修改自增列值

由于之前處理過sql server數據庫的遷移工作,嘗試過其自增列值的變更,但是通過SQL 語句修改自增列值,是嚴格不允許的,直接報錯(無法更新標識列 '自增列名稱‘)。sql server我測試是2008、2012和2014,都不允許變更自增列值,我相信SQL Server 2005+的環境均不允許變更字段列值。

如果非要在SQL Server 平臺修改自增列值的,那就手動需要自增列屬性,然后修改該列值,修改成功后再手動添加自增列屬性。如果在生成環境修改自增列的話,建議在空閑時間(零點以后,平臺或網站使用的用戶很少的時間段)來處理這類問題。數據量大且多表關聯的,那就通過T-SQL來變更。該方法最大的缺點就是要通過手工輔助取消和添加自增屬性的。

還有一個方法,先將要修改的數據整理為T-SQL的插入腳本,再刪除這批要修改的數據,在通過顯示插入數據來實現。這種方式適用于要變更不較少的單表記錄,該方法到時比較靈活的。

更簡單的方法,那就是如果僅僅若干條,那就讓運營人員重新發布信息,刪除以前的數據。

還有網上通過修過T-SQL語句取消自增屬性,我在SQL Server 2005+環境測試均未通過,相應的T-SQL代碼如下:

EXEC sys.sp_configure@configname = 'allow updates', -- varchar(35)@configvalue = 1; -- intEXEC sys.sp_configure@configname = 'show advanced options' , -- varchar(35)@configvalue = 1; -- intRECONFIGURE WITH OVERRIDE;GOUPDATE sys.syscolumnsSET colstat = 1WHERE id = OBJECT_ID(N'PrimaryKeyAndIdentityUpdateTestDataTable', 'U')AND name = N'ID'AND colstat = 1;UPDATE sys.columnsSET is_identity = 0WHERE object_id = OBJECT_ID(N'PrimaryKeyAndIdentityUpdateTestDataTable', 'U')AND name = N'ID'AND is_identity = 1;

執行后的結果如下:

SqlServer Mysql數據庫修改自增列的值及相應問題的解決方案

MySQL 平臺修改自增列值

mysql平臺修改自增列值,有些麻煩的。mysql中存在自增列,如果其引擎是myisam,則該列可以為獨立主鍵列,也可以為復合主鍵列,即該列必須為主鍵的關聯列;如果其引擎是innodb,則該列必須是獨立主鍵列。要直接修改兩個自增列值對調變更,肯定是不行的。

我采用的方法是將兩個自增列值(比如1、2)分為以下三個步驟來實現:
1、先將自增列值為1的修改為0;
2、再將自增列值為2的修改為1;
3、再將自增列值為0的修改為2;

以下兩種數據引擎的測試環境均是mysql 5.6。

數據庫引擎為innodb的前提下,具體的mysql測試代碼如下:

drop table if exists identity_datatable;create table identity_datatable (id int not null AUTO_INCREMENT, name varchar(10) not null,primary key (id) ) engine=innodb,default charset=utf8;insert into identity_datatable (id, name)values (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;

未修改前的數據表結果,如下圖:

SqlServer Mysql數據庫修改自增列的值及相應問題的解決方案

修改后的數據表結果,如下圖:

SqlServer Mysql數據庫修改自增列的值及相應問題的解決方案

注意:

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繼續執行,均報錯卻又恢復了未修改之前的狀態“,這個還不清楚,需要繼續研究。

Oracle平臺的沒有接觸,不曉得,熟悉oracle平臺的博友針對其自增列的變更做個測試或給出個總結。



注:相關教程知識閱讀請移步到MSSQL教程頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
国产主播欧美精品| 久久男人的天堂| 91亚洲精品在线观看| 热99在线视频| 国产精品久久久久久亚洲影视| 国产精品小说在线| 成人观看高清在线观看免费| 97精品在线视频| 国产精品pans私拍| 日韩精品高清在线| 午夜免费在线观看精品视频| 美女视频黄免费的亚洲男人天堂| 日韩在线观看你懂的| 日韩av高清不卡| 欧美视频一区二区三区…| 亚洲欧洲高清在线| 欧美大尺度在线观看| 91麻豆国产精品| 亚洲国产美女久久久久| 国产成人av在线| 国模精品系列视频| 97热精品视频官网| 亚洲91精品在线观看| 国产97在线|日韩| 国产欧美日韩综合精品| 91网站在线免费观看| 欧美亚洲国产日本| 欧美激情第99页| 国产精品27p| 日韩精品在线免费| 久久精品成人动漫| 91九色视频在线| 欧美成人小视频| 亚洲人成自拍网站| 在线观看精品自拍私拍| 成年人精品视频| 亚洲香蕉成人av网站在线观看| 成人一区二区电影| 欧美激情一二三| 国产欧美中文字幕| 久久久久久久久久久av| 久久精品久久久久久国产 免费| 欧美激情视频网| 久久青草精品视频免费观看| 亚洲精品日韩丝袜精品| 国产成人欧美在线观看| 九九精品视频在线| 日韩国产精品一区| 欧美高清视频一区二区| 久久久久久网址| 亚洲裸体xxxx| 国产ts人妖一区二区三区| 久久久久久久爱| 久久久国产精品免费| 国产一区二区成人| 美女福利精品视频| 亚洲精品视频在线观看视频| 成人激情视频在线| 亚洲女在线观看| 亚洲欧美日韩网| 久久精品电影网站| 国产精品视频免费观看www| 亚洲女同性videos| 日本成人在线视频网址| 日韩久久精品成人| 日韩三级成人av网| 亚洲品质视频自拍网| 日本欧美在线视频| 日韩电影大片中文字幕| 国产精品久久久91| 国产日韩av在线播放| 欧美精品在线观看91| 亚洲精品视频在线观看视频| 日本精品一区二区三区在线播放视频| 国产成人a亚洲精品| 日韩www在线| 成人亚洲激情网| 亚洲性生活视频在线观看| 亚洲人成毛片在线播放| 色综合老司机第九色激情| 国产精品a久久久久久| 欧美在线视频免费| 国外成人在线播放| 国产午夜精品理论片a级探花| 91精品久久久久久久久中文字幕| 深夜福利国产精品| 日本最新高清不卡中文字幕| 久久久亚洲福利精品午夜| 亚洲精品久久久久久下一站| 日韩免费观看视频| 91高清免费在线观看| 国产精品美女主播在线观看纯欲| 国产精品视频自在线| 高清欧美一区二区三区| 国产精品美乳一区二区免费| 国产精品久久久久aaaa九色| 国产亚洲福利一区| 亚洲影视九九影院在线观看| 日韩中文字幕国产精品| 欧美成人精品不卡视频在线观看| 在线a欧美视频| 欧美性在线观看| 国产97人人超碰caoprom| 日韩视频免费看| 精品久久久国产精品999| 美女精品久久久| 国产伦精品一区二区三区精品视频| 8x海外华人永久免费日韩内陆视频| 亚洲xxxxx| 57pao国产精品一区| 欧美裸身视频免费观看| 国产精品久久久久77777| 国内精品久久久久影院 日本资源| 成人h视频在线| 欧美午夜xxx| 韩国日本不卡在线| 一区二区三区视频在线| 91高清免费在线观看| 一区二区三区 在线观看视| 成人亚洲欧美一区二区三区| 久久精品电影网站| 亚洲激情久久久| 日韩av一区二区在线| 亚洲三级 欧美三级| 日韩中文字幕亚洲| 久久人人爽人人爽人人片亚洲| 2025国产精品视频| 久久久亚洲国产天美传媒修理工| 亚洲色在线视频| 国产一区二区三区在线播放免费观看| 国产精品美女网站| 久久久久久91| 亚洲美女www午夜| 亚洲人成网站777色婷婷| 亚洲天堂男人天堂女人天堂| 欧美日韩国产中文精品字幕自在自线| 亚洲香蕉伊综合在人在线视看| 日本欧美黄网站| 欧美在线视频播放| 欧美成aaa人片在线观看蜜臀| 欧美理论电影在线播放| 5566成人精品视频免费| 国产精品三级久久久久久电影| 精品国产91久久久久久| 中文字幕日韩欧美在线| 97国产精品久久| 国产精品夜间视频香蕉| 日韩视频免费观看| 成人在线中文字幕| 久久国产视频网站| 久久久在线免费观看| 青草青草久热精品视频在线网站| 国产精品福利在线观看| 精品国产乱码久久久久酒店| 精品少妇一区二区30p| 日韩国产激情在线| 中文字幕日韩在线播放| 午夜精品久久久久久久99黑人| 欧美视频裸体精品| 欧美成人中文字幕| 欧美精品aaa| 日韩欧美高清在线视频| 欧美性精品220| 欧美孕妇毛茸茸xxxx|