国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 數(shù)據(jù)庫 > Oracle > 正文

簡單三步輕松實現(xiàn)ORACLE字段自增

2024-08-29 13:57:44
字體:
供稿:網(wǎng)友
第一步:創(chuàng)建一個表。

復(fù)制代碼 代碼如下:


create table Test_Table
(
ID number(11) primary key,
Name varchar(50) not null,
Value1 varchar(50) not null
)


第二步:創(chuàng)建一個自增序列以此提供調(diào)用函數(shù)。

復(fù)制代碼 代碼如下:


create sequence AutoID
start with 1 //根據(jù)需要自己可修改該數(shù)值
increment by 1 //步長值
minvalue 1
nomaxvalue


其實到此步驟,已經(jīng)可以實現(xiàn)字段自增了。新增記錄時看如下代碼:

復(fù)制代碼 代碼如下:


Insert into Test_Table(ID,Name,Value1)values(AutoID.nextval,'xiyang','blog')


第三步:我們通過創(chuàng)建一個觸發(fā)器,使調(diào)用的方式更加簡單。

復(fù)制代碼 代碼如下:


create trigger AutoID_Trigger

before insert on Test_Table for each row
begin
select AutoID.nextval into :new.ID from dual;
end AutoID_Trigger;


該觸發(fā)器在數(shù)據(jù)庫注冊了表格的偵聽,即當(dāng)指定表Test_Table插入記錄之前,我們調(diào)用一個序列方法的nextval獲得新值,插入自增字段。
在觸發(fā)器中,我們調(diào)用了系統(tǒng)虛擬表dual,該表作為系統(tǒng)表的一部分,它內(nèi)部只存儲一條記錄,我們可以通過該表獲取與系統(tǒng)相關(guān)的一些信息或者進行一些簡單的邏輯操作。
在該觸發(fā)器中,我們使用了dual的一個經(jīng)典用法,即獲取定義序列的nextval方法。
通過上面三個步驟,我們就實現(xiàn)了一個表的字段自增,做插入操作時執(zhí)行以下代碼即可:
Insert into Test_Table(Name,Value1) values('xiyang','blog')
通過在數(shù)據(jù)庫中查詢結(jié)果集,會發(fā)現(xiàn)ID列是自增的。
值得一提的是,在數(shù)據(jù)庫操作中,觸發(fā)器的使用耗費系統(tǒng)資源相對較大。如果對于表容量相對較小的表格我們可以忽略觸發(fā)器帶來的性能影響。考慮到大表操作的性能問題,
我們盡可能的減少觸發(fā)器的使用。對于如上操作,我們完全可以拋棄觸發(fā)器的使用,直接手動調(diào)用序列函數(shù)即可,這樣可能在程序維護上稍微帶來一些不便。
發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 来安县| 吕梁市| 广昌县| 旬邑县| 北安市| 曲沃县| 尼勒克县| 阳谷县| 南陵县| 南部县| 汉阴县| 临汾市| 南城县| 吉木萨尔县| 南开区| 儋州市| 竹山县| 舞钢市| 东海县| 兴隆县| 南部县| 玉屏| 湖北省| 罗城| 济宁市| 桦甸市| 枝江市| 巴塘县| 前郭尔| 鄂托克旗| 武定县| 博客| 哈密市| 马尔康县| 揭阳市| 神农架林区| 栾城县| 广南县| 怀安县| 内丘县| 繁峙县|