久久机这里只有精品,国产69精品一区二区亚洲孕妇,91精品国产综合久久婷婷香蕉,午夜久久久久久电影

最新活動(dòng):電腦PC端+手機(jī)端+微網(wǎng)站+自適應(yīng)網(wǎng)頁(yè)多模板選擇-建站388元起價(jià)!!!
當(dāng)前位置:主頁(yè) > 網(wǎng)站建設(shè) > 深入Mysql,SqlServer,Oracle主鍵自動(dòng)增長(zhǎng)的設(shè)置詳解建

深入Mysql,SqlServer,Oracle主鍵自動(dòng)增長(zhǎng)的設(shè)置詳解建

時(shí)間:2023-05-24 00:05:24 閱讀: 文章分類: 網(wǎng)站建設(shè) 作者: 網(wǎng)站技術(shù)員

導(dǎo)讀:1建站知識(shí)1、把主鍵定義為自動(dòng)增長(zhǎng)標(biāo)識(shí)符類型 MySql 在mysql中,如果把表的主鍵設(shè)為auto_increment類型,數(shù)據(jù)庫(kù)就會(huì)自動(dòng)為主鍵賦值。例如: 復(fù)制代碼 網(wǎng)站建設(shè)制作網(wǎng)站建設(shè)教程。

網(wǎng)站建設(shè)制作網(wǎng)站建設(shè)教程1、把主鍵定義為自動(dòng)增長(zhǎng)標(biāo)識(shí)符類型 MySql 在mysql中,如果把表的主鍵設(shè)為auto_increment類型,數(shù)據(jù)庫(kù)就會(huì)自動(dòng)為主鍵賦值。例如: 復(fù)制代碼 代碼如下:     create table customers(id int auto_increment primary key not null, name varchar(15)); insert into customers(name) values("name1"),("name2"); select id from customers;     以上sql語(yǔ)句先創(chuàng)建了customers表,然后插入兩條記錄,在插入時(shí)僅僅設(shè)定了name字段的值。最后查詢表中id字段,查詢結(jié)果為: 由此可見(jiàn),一旦把id設(shè)為auto_increment類型,mysql數(shù)據(jù)庫(kù)會(huì)自動(dòng)按遞增的方式為主鍵賦值。 Sql Server  在MS SQLServer中,如果把表的主鍵設(shè)為identity類型,數(shù)據(jù)庫(kù)就會(huì)自動(dòng)為主鍵賦值。例如:   復(fù)制代碼 代碼如下:     create table customers(id int identity(1,1) primary key not null, name varchar(15)); insert into customers(name) values('name1'),('name2'); select id from customers;     注意:在sqlserver中字符串用單引號(hào)擴(kuò)起來(lái),而在mysql中可以使用雙引號(hào)。 查詢結(jié)果和mysql的一樣。     由此可見(jiàn),一旦把id設(shè)為identity類型,MS SQLServer數(shù)據(jù)庫(kù)會(huì)自動(dòng)按遞增的方式為主鍵賦值。identity包含兩個(gè)參數(shù),第一個(gè)參數(shù)表示起始值,第二個(gè)參數(shù)表示增量。 PS:2013-6-4 以前經(jīng)常會(huì)碰到這樣的問(wèn)題,當(dāng)我們刪除了一條自增長(zhǎng)列為1的記錄以后,再次插入的記錄自增長(zhǎng)列是2了。我們想在插入一條自增長(zhǎng)列為1的記錄是做不到的。今天跟同事討論的時(shí)候發(fā)現(xiàn)可以通過(guò)設(shè)置SET IDENTITY_INSERT <table_name> ON;來(lái)取消自增長(zhǎng),等我們插入完數(shù)據(jù)以后在關(guān)閉這個(gè)功能。實(shí)驗(yàn)如下:   復(fù)制代碼 代碼如下:     use TESTDB2 --step1:創(chuàng)建表 create table customers( id int identity primary key not null, name varchar(15) ); --step2:執(zhí)行插入操作 insert into customers(id,name) values(1,'name1'); --報(bào)錯(cuò):An explicit value for the identity column in table 'customers' can only be specified when a column list is used and IDENTITY_INSERT is ON. --step3:放開(kāi)主鍵列的自增長(zhǎng) SET IDENTITY_INSERT customers ON; --step4:插入兩條記錄,主鍵分別為1和3。插入成功 insert into customers(id,name) values(1,'name1'); insert into customers(id,name) values(3,'name1'); --step5:再次插入一個(gè)主鍵為2的記錄。插入成功 insert into customers(id,name) values(2,'name1'); --step6:插入重復(fù)主鍵, --報(bào)錯(cuò):Violation of PRIMseo網(wǎng)站優(yōu)化軟件ARY KEY constraint 'PK__customer__3213E83F00551192'. Cannot insert duplicate key in objec網(wǎng)站seo優(yōu)化軟件t 'dbo.customers'. insert into customers(id,name) values(3,'name1'); --step7:關(guān)閉IDENTITY_INSERT SET IDENTITY_INSERT customers OFF;     2、從序列中獲取自動(dòng)增長(zhǎng)的標(biāo)識(shí)符 Oracle 在Oracle中,可以為每張表的主鍵創(chuàng)建一個(gè)單獨(dú)的序列,然后從這個(gè)序列中獲取自動(dòng)增加的標(biāo)識(shí)符,把它賦值給主鍵。例如一下語(yǔ)句創(chuàng)建了一個(gè)名為customer_id_seq的序列,這個(gè)序列的起始值為1,增量為2。 復(fù)制代碼 代碼如下:     create sequence customer_id_seq increment by 2 start with 1     一旦定義了customer_id_seq序列,就可以訪問(wèn)序列的curval和nextval屬性。 •curval:返回序列的當(dāng)前值 •nextval:先增加序列的值,然后返回序列值 以下sql語(yǔ)句先創(chuàng)建了customers表,然后插入兩條記錄,在插入時(shí)設(shè)定了id和name字段的值,其中id字段的值來(lái)自于customer_id_seq序列。最后查詢customers表中的id字段。 復(fù)制代碼 代碼如下: &n建設(shè)網(wǎng)站bsp;   create table customers(id int primary key not null, name varchar(15)); insert into customers values(customer_id_seq.nextval, 'name1'); insert into customers values(customer_id_seq.nextval, 'name2'); select id from customers;     如果在oracle中執(zhí)行以上語(yǔ)句,查詢結(jié)果為:     通過(guò)觸發(fā)器自動(dòng)添加id字段 從上述插入語(yǔ)句可以發(fā)現(xiàn),如果每次都要插入customer_id_seq.nextval的值會(huì)非常累贅與麻煩,因此可以考慮使用觸發(fā)器來(lái)完成這一步工作。 創(chuàng)建觸發(fā)器trg_customers   復(fù)制代碼 代碼如下:     create or replace trigger trg_customers before insert on customers for each row  begin  select CUSTOMER_ID_SEQ.nextval into :new.id from dual;  end;     插入一條記錄 復(fù)制代碼 代碼如下:     insert into customers(name) values('test');      這是我們會(huì)發(fā)現(xiàn)這一條記錄被插入到數(shù)據(jù)庫(kù)中,并且id還是自增長(zhǎng)的。 深入Mysql,SqlServer,Oracle主鍵自動(dòng)增長(zhǎng)的設(shè)置詳解相關(guān)網(wǎng)站建設(shè)制作網(wǎng)站建設(shè)教程。

關(guān)鍵詞標(biāo)簽: 詳解 主鍵 深入Mysql SqlServer

聲明: 本文由我的SEOUC技術(shù)文章主頁(yè)發(fā)布于:2023-05-24 ,文章深入Mysql,SqlServer,Oracle主鍵自動(dòng)增長(zhǎng)的設(shè)置詳解建主要講述詳解,主鍵,深入Mysql,SqlServer,Oracle網(wǎng)站建設(shè)源碼以及服務(wù)器配置搭建相關(guān)技術(shù)文章。轉(zhuǎn)載請(qǐng)保留鏈接: http://www.bifwcx.com/article/web_6223.html

我的IDC 網(wǎng)站建設(shè)技術(shù)SEOUC.COM
專注網(wǎng)站建設(shè),SEO優(yōu)化,小程序設(shè)計(jì)制作搭建開(kāi)發(fā)定制網(wǎng)站等,數(shù)千家網(wǎng)站定制開(kāi)發(fā)案例,網(wǎng)站推廣技術(shù)服務(wù)。
  • 5000+合作客服
  • 8年從業(yè)經(jīng)驗(yàn)
  • 150+覆蓋行業(yè)
  • 最新熱門源碼技術(shù)文章

    主站蜘蛛池模板: 乐至县| 绵竹市| 抚远县| 四平市| 鹤峰县| 富平县| 广东省| 鄱阳县| 河北区| 永川市| 苏尼特左旗| 清苑县| 大方县| 佛冈县| 和静县| 兰考县| 庄浪县| 南京市| 旺苍县| 山西省| 莱西市| 镇远县| 麻阳| 平定县| 绥芬河市| 兴宁市| 武汉市| 攀枝花市| 洛南县| 吉木乃县| 巴林右旗| 杭锦后旗| 邵阳县| 屏南县| 阜南县| 桦甸市| 玛沁县| 安乡县| 山阴县| 永川市| 东台市|