這個需要分兩步來完成
創(chuàng)新互聯(lián)公司于2013年創(chuàng)立,公司自成立以來始終致力于為企業(yè)提供官網(wǎng)建設(shè)、移動互聯(lián)網(wǎng)業(yè)務(wù)開發(fā)(微信小程序定制開發(fā)、手機(jī)網(wǎng)站建設(shè)、手機(jī)APP定制開發(fā)等),并且包含互聯(lián)網(wǎng)基礎(chǔ)服務(wù)(域名、主機(jī)服務(wù)、企業(yè)郵箱、網(wǎng)絡(luò)營銷等)應(yīng)用服務(wù);以先進(jìn)完善的建站體系及不斷開拓創(chuàng)新的精神理念,幫助企業(yè)客戶實(shí)現(xiàn)互聯(lián)網(wǎng)業(yè)務(wù),嚴(yán)格把控項(xiàng)目進(jìn)度與質(zhì)量監(jiān)控加上過硬的技術(shù)實(shí)力獲得客戶的一致贊譽(yù)。
1
drop sequence 序列名;
2
create sequence 序列名
minvalue 最小值
maxvalue 最大值
start with 開始值
increment by 遞增
cache 20
order;
如何使用Oracle序列:
Oracle序列(sequence)是一種數(shù)據(jù)庫項(xiàng),能夠生成一個整數(shù)序列。通常用于填充數(shù)字類型的主鍵列。
1、創(chuàng)建序列:
CREATE SEQUENCE sequence_name
[START WITH start_num]
[INCREMENT BY increment_num]
[{MAXVALUE maximum_num|NOMAXVALUE}]
[{MINVALUE minimum_num|NOMINVALUE}]
[{CYCLE|NOCYCLE}]
[{CACHE cache_num|NOCACHE}]
[{ORDER|NOORDER}]
其中:
start_num:序列開始整數(shù)
increment_num:每次增加的整數(shù)增量
maximum:序列最大整數(shù)
minimum:序列最小整數(shù)
CYCLE:循環(huán)生成
NOCYCLE:不循環(huán)生成,默認(rèn)值
cache_num:保存在內(nèi)存中的整數(shù)的個數(shù)
NOCACHE:不緩存任何整數(shù)
例如:
CREATE SEQUENCE seq_test;(默認(rèn)值)
CREATE SEQUENCE seq_test START WITH 1 INCREMENT BY 2;
2、使用序列:
SELECT seq_test.nextval FROM dual;
insert into order_status2 (id) values (seq_test.nextval);
3、修改序列:
ALTER SEQUENCE語句來修改序列??梢孕薷牡膬?nèi)容:
不能修改序列的初值
序列的最小值不能大于當(dāng)前值
序列的最大值不能小于當(dāng)前值
例如:ALTER SEQUENCE seq_test INCREMENT BY 3;
4、刪除序列:
DROP SEQUENCE seq_test;
可以使用update select 語法進(jìn)行更新
喜歡研究的可以自行學(xué)習(xí)下,以便積累
不想浪費(fèi)時(shí)間可以看下面:
UPDATE A SET ID = (SELECT ROWNUM FROM A ORDER BY 時(shí)間 DESC)
參考語法:
UPDATE A SET (A1, A2, A3) = (SELECT B1, B2, B3 FROM B WHERE A.ID = B.ID)
WHERE ID IN (SELECT B.ID FROM B WHERE A.ID = B.ID)
如果列名不適合,那么可以使用alter
table語句的rename
column子句改變列名。語法如下:
alter
table
table_name
rename
column
column_name
to
new_column_name;
你這一題該是
alter
text
rename
textpass
to
password
去試下!
主鍵表 - T表 '100W'數(shù)據(jù)同步到T1表(同步:TRUNCATE/DELETE或IMPDP...等方式[手動改數(shù)據(jù)])
例如: T表對應(yīng)SEQ_T.NEXTVAL= 100W;
T1表對應(yīng)SEQ_T.NEXTVAL= 10W;
TRUNCATE TABLE T1;
INSERT TABLE T1 SELECT * FROM T;
數(shù)據(jù)同步但T1表對應(yīng)SEQ_T.NEXTVAL= 10W序列不變;
此時(shí)T1調(diào)用序列INSERT到T1表時(shí)就會報(bào)錯 ( ORA-00001 : 違反唯一約束條件 (LOTTERY.PK_T1))
(若批量同步很多表就可能會引起很多表序列需要更新成主鍵最大值+ 1才能保證不報(bào)錯
(可以用把源庫的SEQUENCE同步過來①或者如下存儲解決② ))
Oracle 序列(Sequence)主要用于生成流水號,Oracle EBS系統(tǒng)中是經(jīng)常用到的。但是,有時(shí)需要修改序列初始值(START WITH)時(shí),好多人憑感覺認(rèn)為:Alter Sequence SequenceName Start With N。事實(shí)上,在Oracle Db中,修改序列沒有這樣的語法。沒有這樣的語法情況怎么辦,有二種方法可以完成
1.先刪除序列,然后重新創(chuàng)建。不過這不是當(dāng)前要講的重點(diǎn)。這個方法比較方便。
2.通過Increment By來實(shí)現(xiàn)修改初始值。
例如:若序列名稱是SeqTest2010_S,初始值是13,而現(xiàn)在要設(shè)置初始值為1020,Increment By值為:1007(1020-13)
2.1 執(zhí)行:Alter Sequence SeqTest2010_S Increment By 1007;
2.2 執(zhí)行:Select SeqTest2010_S.NextVal From Dual;
2.3 執(zhí)行:Alter Sequence SeqTest2010_S Increment By 1;
修改完成。簡單吧