Giả sử bạn muốn tạo một bảng trong Oracle có trường ID (kiểu số) và ID này tự động tăng mỗi khi bạn insert dữ liệu vào bảng thì bạn có thể thực hiện theo các bước sau.
Tạo mới bảng
Trong bài này chúng ta sẽ cùng tạo bảng có tên là SOCIAL_NETWORKS để lưu tên những mạng xã hội phổ biến nhất hiện nay. Cấu trúc bảng này như sau:
| Bảng SOCIAL_NETWORKS – lưu tên các mạng xã hội | |
|---|---|
| id | id – khóa chính kiểu số, tự động tăng |
| name | tên mạng xã hội |
| description | mô tả ngắn gọn về mạng xã hội |
Bạn dùng nhóm lệnh sau trong SQL Plus để tạo bảng theo cấu trúc trên.
CREATE TABLE SOCIAL_NETWORKS( ID NUMBER PRIMARY KEY,NAME CHAR(20),DESCRIPTION VARCHAR(200));

Tạo mới một Sequence
Sau khi tạo bảng SOCIAL_NETWORKS chúng ta cần tạo 1 Sequence giúp tự động tăng trường ID cho bảng này, ID này sẽ có giá trị bắt đầu từ 1 và được tăng +1 cho mỗi lần một hàng dữ liệu mới được chèn vào bảng. Nhóm lệnh SQL để tạo Sequence này như sau:
CREATE SEQUENCE AUTO_INCREMENT_SEQUENCESTART WITH 1INCREMENT BY 1;

Tạo mới 1 Trigger
Chúng ta sẽ dùng 1 Trigger để kích hoạt Sequence vừa tạo, Trigger này sẽ giúp gọi tới AUTO_INCREMENT_SEQUENCE để tăng trường ID lên 1 trước khi lệnh Insert dữ liệu vào bảng được gọi.
CREATE OR REPLACE TRIGGER AUTO_INCREMENT_TRIGGERBEFORE INSERTON SOCIAL_NETWORKSREFERENCING NEW AS NEWFOR EACH ROWBEGINSELECT AUTO_INCREMENT_SEQUENCE.NEXTVAL INTO :NEW.ID FROM DUAL;END;/

Insert dữ liệu vào bảng và kiểm tra kết quả
Chèn dữ liệu vào bảng sau khi đã tạo cấu trúc
Sau khi tạo xong Table, Sequence và Trigger bạn dùng nhóm lệnh sau để chèn nhiều dòng dữ liệu chứa tên các mạng xã hội vào bảng SOCIAL_NETWORKS.
INSERT ALLINTO SOCIAL_NETWORKS(NAME, DESCRIPTION)VALUES
('Facebook','Facebook - stylized facebook is a social networking service and
website launched in February 2004, operated and privately owned by Facebook,
Inc')INTO SOCIAL_NETWORKS(NAME, DESCRIPTION)VALUES
('Flickr','Flickr is almost certainly the best online photo management and
sharing application in the world.')INTO SOCIAL_NETWORKS(NAME,
DESCRIPTION)VALUES ('Twitter','Twitter is a website, owned and operated by
Twitter Inc., which offers a social networking and microblogging service,
enabling its users to send and read messages called tweets')INTO SOCIAL_NETWORKS(NAME, DESCRIPTION)VALUES ('Youtube','YouTube is a
video-sharing website on which users can upload, share, and view videos, created
by three former PayPal employees in February 2005')INTO SOCIAL_NETWORKS(NAME, DESCRIPTION)VALUES ('Digg','Digg is a place for people
to discover and share content from anywhere on the web')INTO SOCIAL_NETWORKS(NAME, DESCRIPTION)VALUES ('StummbleUpon','StumbleUpon is a
discovery engine (a form of web search engine) that finds and recommends web
content to its users')SELECT * FROM DUAL;
Bạn chú ý nhớ chạy lệnh commit; trong SQL PLus để commit toàn bộ thao tác tạo bảng, sequence, trigger và insert dữ liệu ở trên.
Kiểm tra dữ liệu được chèn vào
Để kiểm tra các bản ghi được thêm vào bạn dùng lệnh sau:
SELECT * FROM SOCIAL_NETWORKS
Danh sách dữ liệu sẽ được hiển thị

Như vậy là bạn đã tạo thành công 1 bảng với trường ID tăng tự động trong Oracle, bảng của bạn được sử dụng để lưu tên những mạng xã hội phổ biến nhất hiện nay. Bạn cũng có thể áp dụng phương pháp này với những bảng đã có sẵn trong database, khi đó bạn chỉ cần tạo mới Sequence và Trigger để cài đặt tính năng tự động tăng ID cho bảng mà không cần bước tạo mới bảng ở trên.
Nguồn: http://luuquangtrieu.wordpress.com – internet




