當(dāng)前位置:工程項(xiàng)目OA系統(tǒng) > 領(lǐng)域應(yīng)用 > 微信營(yíng)銷 > 微信營(yíng)銷軟件
SYBASE & ORACLE自增主鍵
申請(qǐng)免費(fèi)試用、咨詢電話:400-8352-114
SYBASE & ORACLE自增主鍵
1、SYBASE:
SQL語(yǔ)句:
CREATE TABLE test( phoneid int IDENTITY NOT NULL PRIMARY KEY , phoneNum varchar(20) null )
關(guān)鍵字IDENTITY一定要大寫,而且一定要放在int和not null之間,
用dba設(shè)置的話比較方便,直接在建表的過(guò)程中把Identity Column的屬性勾上即可。
2、ORACLE
由于ORACLE設(shè)置主鍵是不會(huì)自動(dòng)增加的,所以必須用 序列 和 觸發(fā)器 來(lái)完成主鍵的遞增
1建立數(shù)據(jù)表
createtable Test_Increase( userid number(10) primarykey,/*建立主鍵*/ username varchar2(20) );
2創(chuàng)建自動(dòng)增長(zhǎng)序列
CREATE SEQUENCE TestIncrease_Sequence INCREMENT BY1-- 每次加幾個(gè) START WITH1-- 從1開(kāi)始計(jì)數(shù) NOMAXVALUE-- 不設(shè)置最大值 NOCYCLE-- 一直累加,不循環(huán) CACHE 10;
3創(chuàng)建觸發(fā)器
CREATETRIGGER Test_Increase BEFORE insertON Test_Increase FOR EACH ROW begin select TestIncrease_Sequence.nextval into:New.userid from dual; end;完成!------------------------------------------------------------------------------------------------------------DB2修改表中一列為自動(dòng)增長(zhǎng)主鍵的方法1 )當(dāng)想將表中一列修改為自動(dòng)增長(zhǎng)時(shí),可用下面命令: Alter table <table name> alter column <column name> set generated always as identity (start with 1,increment by 1) 上面命令是在改一表中列的屬性時(shí),在網(wǎng)上找到的很有用。 2)當(dāng)修改表中一列自動(dòng)增長(zhǎng)的開(kāi)始值時(shí),可用下面的命令: ALTER TABLE <talbe_name> ALTER COLUMN <column name> RESTART WITH 18; DB2可以使用generated always as identity 將某一個(gè)字段指定為自增長(zhǎng)的字段, 比如: 這表示id自動(dòng)是一個(gè)自增長(zhǎng)的字段,它從1開(kāi)始增加每次增加1。也可以通過(guò)generated 將字段的值通過(guò)其他字段的計(jì)算的來(lái),比如; createtableuser(namevarchar(30), n1integer, n2 integer, idintegergeneratedalwaysas(n1+n2)) 如: createtablestrategy ( strategy_iddecimal(17) GENERATEDALWAYSASIDENTITY(STARTWITH1,INCREMENTBY1) primarykeynotnull, strategy_namevarchar(200), area_code decimal(6,0) ); GENERATEDALWAYSASIDENTITY(STARTWITH1, INCREMENTBY1) 從1開(kāi)始自增,每次加1. DB2Identity字段與sequence: Identity字段與sequence的最大不同在于: identity只能在一個(gè)表中使用,多個(gè)表不可以共享identity;而sequence可以通過(guò)命名方式在同一個(gè)數(shù)據(jù)庫(kù)內(nèi)部的多個(gè)表中共享序列號(hào)發(fā)生器 生成數(shù)字序列的兩種方法 在 DB2 中可以用兩種方法自動(dòng)生成一個(gè)數(shù)字序列: 定義帶有 IDENTITY 屬性的列。 創(chuàng)建 SEQUENCE 對(duì)象。 IDENTITY 列 當(dāng)用 IDENTITY 屬性定義表的列時(shí),每當(dāng)將一行插入表時(shí),就會(huì)自動(dòng)為該列生成一個(gè)數(shù)值。 SEQUENCE 對(duì)象 讓 DB2 自動(dòng)生成數(shù)字序列的第二種方法是創(chuàng)建 SEQUENCE 對(duì)象??梢允褂?序列表達(dá)式(sequence expression)來(lái)引用序列對(duì)象。序列表達(dá)式可以出現(xiàn)在表達(dá)式能夠出現(xiàn)的大多數(shù)位置。序列表達(dá)式可以指定要返回的值是新生成的值還是以前生成的值。 如果序列引用是針對(duì) 下一值(next value),就會(huì)為序列自動(dòng)生成一個(gè)數(shù)值,并將該數(shù)值作為序列表達(dá)式的結(jié)果返回。例如,如果我們假設(shè)已經(jīng)創(chuàng)建了名為 orders_seq 的序列,該序列表達(dá)式就返回為序列生成的下一個(gè)值: NEXTVALUEFORorders_seq 如果序列引用是針對(duì) 前一值(previous value),那么會(huì)將前一個(gè) SQL 語(yǔ)句中為序列生成的數(shù)值作為序列表達(dá)式的結(jié)果返回。該序列表達(dá)式返回由序列生成的前一個(gè)值: PREVIOUSVALUEFORorders_seq 注:當(dāng) DB2 UDB 引入序列時(shí),曾支持非 SQL 標(biāo)準(zhǔn)語(yǔ)法 NEXTVAL 代替 NEXT VALUE ,以及 PREVVAL 代替 PREVIOUS VALUE 。這些變體繼續(xù)受到支持。 在標(biāo)識(shí)和序列之間做出選擇 雖然標(biāo)識(shí)和序列都用于生成數(shù)值,但您也許要根據(jù)特殊情況選擇使用一種來(lái)代替另一種。 在以下情況下,標(biāo)識(shí)列很有用: 表中只有一列需要自動(dòng)生成的值 每一行都需要獨(dú)立的值 用自動(dòng)生成器來(lái)產(chǎn)生表的主鍵 生成新值的進(jìn)程與對(duì)表的插入操作緊密聯(lián)系,無(wú)論插入操作是如何發(fā)生的 在以下情況下,序列對(duì)象很有用: 要將從一個(gè)序列生成的值存儲(chǔ)到多個(gè)表中 每個(gè)表有多個(gè)列需要自動(dòng)生成的值(可能通過(guò)使用同一個(gè)序列或多個(gè)序列為每一行生成多個(gè)值) 生成新值的進(jìn)程與任何對(duì)表的引用無(wú)關(guān) 與序列對(duì)象不同,標(biāo)識(shí)列是在表上定義的,因此需要某些限制。每個(gè)表最多只能有一個(gè)標(biāo)識(shí)列。當(dāng)創(chuàng)建一個(gè)列作為標(biāo)識(shí)列時(shí),對(duì)于該列必須使用確切的數(shù)字?jǐn)?shù)據(jù)類型。因?yàn)闃?biāo)識(shí)屬性為列生成一個(gè)值,這類似于 DEFAULT 子句所做的,所以在定義標(biāo)識(shí)列時(shí)不能指定 DEFAULT 子句。標(biāo)識(shí)列被隱式地定義成 NOT NULL
- 1淘寶封殺微信營(yíng)銷應(yīng)用構(gòu)成壟斷嗎?
- 2免費(fèi)微信營(yíng)銷軟件與酬酢媒體各不同的能力有哪些?
- 3微信推廣軟件與酬酢記者不一樣的地方有哪幾種?
- 4微信與財(cái)付通打通 邁出商業(yè)化最關(guān)鍵一步
- 5淺談微信營(yíng)銷中的品牌定位問(wèn)題
- 6微信營(yíng)銷- 賬號(hào)消息推送的黃金時(shí)段?
- 7微信導(dǎo)航:廣州日?qǐng)?bào)官方微信上線 參與隨手拍春色天天有獎(jiǎng)拿
- 8域名的信任度是多少
- 9微淘、微博、微信:移動(dòng)電商“三微”詳細(xì)解讀
- 10微信資訊:微信也能查勘理賠-保險(xiǎn)公司新渠道
- 11服務(wù)器托管與虛擬主機(jī)的區(qū)別
- 12臨沂企業(yè)APP開(kāi)發(fā)的優(yōu)勢(shì)
- 13微商三大痛點(diǎn) 沒(méi)用戶、沒(méi)內(nèi)容、沒(méi)成交該如何解決
- 14域名解釋
- 15微信群發(fā)軟件與社交媒體各不同的地方有哪幾種?
- 16微信營(yíng)銷如何做好內(nèi)容的推送
- 17免費(fèi)微信營(yíng)銷軟件與交際BBC不一樣的功能有哪幾種?
- 18SQL去除重復(fù)記錄
- 19教你寫好一份微信營(yíng)銷方案
- 20如何刪除不用的MSN賬號(hào)
- 21微信公共平臺(tái)導(dǎo)航:吳克群香港開(kāi)工何超蓮送外賣 微信傳不停
- 22主機(jī)托管含義
- 23免費(fèi)微信營(yíng)銷軟件與外交BBC皆不同的功能有哪幾種?
- 24微信電話本2.0發(fā)布 再次向微信靠攏
- 25微信推廣軟件與社交BBC不相同的模式有哪幾種?
- 26微信增粉推廣方法的六大招數(shù)
- 27魅族獲阿里5.9億美元投資 喊話小米“一起玩”
- 28免費(fèi)微信營(yíng)銷軟件與應(yīng)酬CNN不相同的能力有哪一些?
- 29微信公共平臺(tái)導(dǎo)航:微信游戲加速 首批自研游戲或下月上線
- 30微信公共平臺(tái)導(dǎo)航:微信交友認(rèn)知音 見(jiàn)面留宿被非禮
成都公司:成都市成華區(qū)建設(shè)南路160號(hào)1層9號(hào)
重慶公司:重慶市江北區(qū)紅旗河溝華創(chuàng)商務(wù)大廈18樓