MySQL 和 Oracle 主键自增长
生活随笔
收集整理的這篇文章主要介紹了
MySQL 和 Oracle 主键自增长
小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
1、MySQL
1)建表
?auto_increment:每插入一條數(shù)據(jù),客戶表(customers)的主鍵id就自動(dòng)增1,如下所示
1 create table customers -- 創(chuàng)建客戶表 2 ( 3 id int auto_increment primary key not null, -- auto_increment:自增長(zhǎng) 4 name varchar(15) 5 ); 6?
2)測(cè)試(實(shí)例)
1 insert into customers(name) values("張三"),("李四");-- 向客戶表中插入數(shù)據(jù) 2 3 select * from customers; -- 查詢客戶表?
?
?
2、Oracle
1)建表
1 create table student 2 ( 3 id number not null, -- 主鍵 4 name varchar2(20), 5 birthday date,6 age number(20),
7 phone varchar2(60),
8 email varchar2(10)
9 )
10 alter table student add constraint student_pk primary key (id); -- 主鍵
?
2)創(chuàng)建序列
1 /* 2 --創(chuàng)建序列Sequence 3 create sequence student_id 4 minvalue 1 --最小值 5 nomaxvalue --不設(shè)置最大值(由機(jī)器決定),或 根據(jù)表字段的值范圍設(shè)置 maxvalue6 maxvalue 99999999 -- 最大值 7 start with 1 --從1開(kāi)始計(jì)數(shù),數(shù)值可變 8 increment by 1 --每次加1,數(shù)值可變 9 nocycle --一直累加,不循環(huán) 10 nocache; --不建緩沖區(qū)。 如果建立cache那么系統(tǒng)將自動(dòng)讀取cache值個(gè)seq,這樣會(huì)加快運(yùn)行速度;如果在單機(jī)中使用cache,或者oracle死了,那么下次讀取的seq值將不連貫,所以不建議使用cache。 11 */ 12
13 14 -- 創(chuàng)建序列 15 create sequence student_id
16 minvalue 1 17 nomaxvalue
18 increment by 1
19 start with 1
20 nocache;
?Oracle sequence序列的創(chuàng)建、修改及刪除 詳解:http://www.cnblogs.com/dshore123/p/8269537.html
?
3)創(chuàng)建觸發(fā)器 (以下三種方式都行)
格式:
create or replace trigger 觸發(fā)器名before insert on 表名 for each row when (new.表的自增長(zhǎng)字段 is null)beginselect 序列名.Nextval into:new.表的自增長(zhǎng)字段 from dual;end; 1 -- 方式一 2 create or replace trigger tg_insertId3 before insert on student for each row when (new.id is null) -- 當(dāng)id為NULL時(shí)觸發(fā) 4 begin5 select student_id.Nextval into:new.id from dual;6 end;7
8
9 -- 方式二 10 create or replace trigger tg_insertId 11 before insert on student for each row 12 begin 13 select student_id.Nextval into:new.id from dual; 14 end;
15
16
17 -- 方式三
18 create or replace trigger tg_insertId
19? before insert on student for each row
20 declare -- 聲明
21? -- 局部變量(student表里的字段)
22 begin
23? if updating then
24?????? insert into student
25?????? values(student_id.nextval,
26????????????? :old.name,
27?? ?????? :old.sal, -- 假如student表 有該字段(舉例、模板、樣式)
28?? ?????? :old.sex -- 假如student表 有該字段
29????????????? );
30? end if;
31 end;
4)測(cè)試(實(shí)例)
1 INSERT INTO student(name,birthday,age,phone,email) 2 VALUES('zhangsan',to_date('2018-01-10 19:55:45','yyyy-MM-dd hh24:mi:ss'),18,'13510086110','123456789@qq.com'); -- 插入數(shù)據(jù)3
4 INSERT INTO student(name,birthday,age,phone,email) 5 VALUES('zhangsan',to_date('2018-01-11 19:55:45','yyyy-MM-dd hh24:mi:ss'),20,'13510086110','123456789@qq.com');
6
7 8 select * from student; -- 查詢學(xué)生表
或者
1 insert into student(seq,name,birthday,age,phone,email) -- 這是帶上“自增長(zhǎng)主鍵(seq)”的寫(xiě)法 2 values(student_id.Nextval,'zhangsan',to_date('2018-01-10 19:55:45','yyyy-MM-dd hh24:mi:ss'),18,'13510086110','123456789@qq.com');?
?
?
| 原創(chuàng)作者:DSHORE 作者主頁(yè):http://www.cnblogs.com/dshore123/ 原文出自:http://www.cnblogs.com/dshore123/p/8267240.html 歡迎轉(zhuǎn)載,轉(zhuǎn)載務(wù)必說(shuō)明出處。(如果本文對(duì)您有幫助,可以點(diǎn)擊一下右下角的 推薦,或評(píng)論,謝謝!) |
?
G M T| 檢測(cè)語(yǔ)言世界語(yǔ)中文簡(jiǎn)體中文繁體丹麥語(yǔ)烏克蘭語(yǔ)烏茲別克語(yǔ)烏爾都語(yǔ)亞美尼亞語(yǔ)伊博語(yǔ)俄語(yǔ)保加利亞語(yǔ)僧伽羅語(yǔ)克羅地亞語(yǔ)冰島語(yǔ)加利西亞語(yǔ)加泰羅尼亞語(yǔ)匈牙利語(yǔ)南非祖魯語(yǔ)卡納達(dá)語(yǔ)印地語(yǔ)印尼巽他語(yǔ)印尼爪哇語(yǔ)印尼語(yǔ)古吉拉特語(yǔ)哈薩克語(yǔ)土耳其語(yǔ)塔吉克語(yǔ)塞爾維亞語(yǔ)塞索托語(yǔ)威爾士語(yǔ)孟加拉語(yǔ)宿務(wù)語(yǔ)尼泊爾語(yǔ)巴斯克語(yǔ)布爾語(yǔ)(南非荷蘭語(yǔ))希伯來(lái)語(yǔ)希臘語(yǔ)德語(yǔ)意大利語(yǔ)意第緒語(yǔ)拉丁語(yǔ)拉脫維亞語(yǔ)挪威語(yǔ)捷克語(yǔ)斯洛伐克語(yǔ)斯洛文尼亞語(yǔ)斯瓦希里語(yǔ)旁遮普語(yǔ)日語(yǔ)格魯吉亞語(yǔ)毛利語(yǔ)法語(yǔ)波蘭語(yǔ)波斯尼亞語(yǔ)波斯語(yǔ)泰盧固語(yǔ)泰米爾語(yǔ)泰語(yǔ)海地克里奧爾語(yǔ)愛(ài)爾蘭語(yǔ)愛(ài)沙尼亞語(yǔ)瑞典語(yǔ)白俄羅斯語(yǔ)立陶宛語(yǔ)索馬里語(yǔ)約魯巴語(yǔ)緬甸語(yǔ)羅馬尼亞語(yǔ)老撾語(yǔ)芬蘭語(yǔ)苗語(yǔ)英語(yǔ)荷蘭語(yǔ)菲律賓語(yǔ)葡萄牙語(yǔ)蒙古語(yǔ)西班牙語(yǔ)豪薩語(yǔ)越南語(yǔ)阿塞拜疆語(yǔ)阿爾巴尼亞語(yǔ)阿拉伯語(yǔ)韓語(yǔ)馬其頓語(yǔ)馬爾加什語(yǔ)馬拉地語(yǔ)馬拉雅拉姆語(yǔ)馬來(lái)語(yǔ)馬耳他語(yǔ)高棉語(yǔ)齊切瓦語(yǔ) | ? | 世界語(yǔ)中文簡(jiǎn)體中文繁體丹麥語(yǔ)烏克蘭語(yǔ)烏茲別克語(yǔ)烏爾都語(yǔ)亞美尼亞語(yǔ)伊博語(yǔ)俄語(yǔ)保加利亞語(yǔ)僧伽羅語(yǔ)克羅地亞語(yǔ)冰島語(yǔ)加利西亞語(yǔ)加泰羅尼亞語(yǔ)匈牙利語(yǔ)南非祖魯語(yǔ)卡納達(dá)語(yǔ)印地語(yǔ)印尼巽他語(yǔ)印尼爪哇語(yǔ)印尼語(yǔ)古吉拉特語(yǔ)哈薩克語(yǔ)土耳其語(yǔ)塔吉克語(yǔ)塞爾維亞語(yǔ)塞索托語(yǔ)威爾士語(yǔ)孟加拉語(yǔ)宿務(wù)語(yǔ)尼泊爾語(yǔ)巴斯克語(yǔ)布爾語(yǔ)(南非荷蘭語(yǔ))希伯來(lái)語(yǔ)希臘語(yǔ)德語(yǔ)意大利語(yǔ)意第緒語(yǔ)拉丁語(yǔ)拉脫維亞語(yǔ)挪威語(yǔ)捷克語(yǔ)斯洛伐克語(yǔ)斯洛文尼亞語(yǔ)斯瓦希里語(yǔ)旁遮普語(yǔ)日語(yǔ)格魯吉亞語(yǔ)毛利語(yǔ)法語(yǔ)波蘭語(yǔ)波斯尼亞語(yǔ)波斯語(yǔ)泰盧固語(yǔ)泰米爾語(yǔ)泰語(yǔ)海地克里奧爾語(yǔ)愛(ài)爾蘭語(yǔ)愛(ài)沙尼亞語(yǔ)瑞典語(yǔ)白俄羅斯語(yǔ)立陶宛語(yǔ)索馬里語(yǔ)約魯巴語(yǔ)緬甸語(yǔ)羅馬尼亞語(yǔ)老撾語(yǔ)芬蘭語(yǔ)苗語(yǔ)英語(yǔ)荷蘭語(yǔ)菲律賓語(yǔ)葡萄牙語(yǔ)蒙古語(yǔ)西班牙語(yǔ)豪薩語(yǔ)越南語(yǔ)阿塞拜疆語(yǔ)阿爾巴尼亞語(yǔ)阿拉伯語(yǔ)韓語(yǔ)馬其頓語(yǔ)馬爾加什語(yǔ)馬拉地語(yǔ)馬拉雅拉姆語(yǔ)馬來(lái)語(yǔ)馬耳他語(yǔ)高棉語(yǔ)齊切瓦語(yǔ) | ? | ? | ? | ? | ? |
| ? | 選項(xiàng) : 歷史 : 反饋 : Donate | 關(guān)閉 |
轉(zhuǎn)載于:https://www.cnblogs.com/dshore123/p/8267240.html
總結(jié)
以上是生活随笔為你收集整理的MySQL 和 Oracle 主键自增长的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: DWR推送的一些随笔
- 下一篇: python array 使用创建10万