Bài viết Câu hỏi About RongvangIT
profile Pic
0
0

Đăng ngày:

 

Sửa ngày:

132 Lượt xem

Cách sử dụng Sequence (PostgreSQL)

SQLPostgreSQL

Sequence là gì

Sequence là một công cụ cung cấp số thứ tự. Nó có thể được sử dụng khi chèn các giá trị như ID của bảng trong PostgreSQL.

Ví dụ về việc sử dụng Sequence

Hãy xem ví dụ sử dụng Sequence cho ID của bảng. Dưới đây là các bước để sử dụng Sequence.
(1) Tạo Sequence
(2) Chèn Sequence làm ID cho bảng

(1) Tạo Sequence

Sequence được tạo như sau. Có một tùy chọn là START, cho phép bạn chỉ định số đầu tiên mà nó sẽ cấp phát (ví dụ: START 10). Nếu không chỉ định số bắt đầu, nó sẽ mặc định là 1.

Cú pháp: CREATE SEQUENCE Tên_Sequence (Tùy chọn)

CREATE SEQUENCE test_seq
    START WITH 1
    INCREMENT BY 1
    NO MINVALUE
    MAXVALUE 9999
    CACHE 1;

(2) Chèn Sequence làm ID cho bảng

Khi chèn ID vào bảng, bạn sử dụng Sequence được tạo ở (1). Bạn có thể cấp phát số thứ tự bằng cách sử dụng nextval(‘Tên_Sequence’).

postgres=## CREATE TABLE test_table (id int, name varchar(20));
CREATE TABLE
postgres=## INSERT INTO test_table VALUES (nextval('test_seq'), 'suzuki');
INSERT 0 1
postgres=## INSERT INTO test_table VALUES (nextval('test_seq'), 'ito');
INSERT 0 1
postgres=## INSERT INTO test_table VALUES (nextval('test_seq'), 'sato');
INSERT 0 1
postgres=## SELECT * FROM test_table ;
 id |  name
----+--------
  1 | suzuki
  2 | ito
  3 | sato
(3 rows)

Cách thiết lập lại giá trị của Sequence

Giá trị của Sequence có thể được thiết lập lại bằng cách sử dụng setval(‘Tên_Sequence’, Giá trị). Thêm nữa, bạn có thể kiểm tra giá trị của Sequence mà bạn vừa cấp phát bằng currval(‘Tên_Sequence’).

postgres=## select setval('test_seq', 1);   --- Đặt li s th t hin ti thành 1
 setval
--------
      1
(1 row)

postgres=## select currval('test_seq');    --- Kim tra giá tr hin ti
 currval
---------
       1
(1 row)

postgres=## select nextval('test_seq');    --- Cp phát giá tr tiếp theo
 nextval
---------
       2
(1 row)

(Tham khảo) Kiểm tra nội dung của Sequence

Bạn có thể kiểm tra nội dung của Sequence bằng cách sử dụng lệnh meta.

Cú pháp: \d Tên_Sequence

postgres=## \d test_seq
                          Sequence "public.test_seq"
  Type  | Start | Minimum |       Maximum       | Increment | Cycles? | Cache
--------+-------+---------+---------------------+-----------+---------+-------
 bigint |     1 |       1 | 9223372036854775807 |         1 | no      |     1

Tóm tắt

Chúng ta đã có thể tạo ra một dãy số duy nhất bằng cách sử dụng Sequence. Bạn có thể cấp phát giá trị bằng nextval, kiểm tra giá trị bằng currval và thiết lập lại giá trị bằng setval.
Cảm ơn bạn đã đọc!

Tham khảo

PostgreSQL Manual

dev_pro_it
Đang làm IT tại Japan

Bình luận

Bài viết chưa có bình luận. Hãy trở thành người bình luận đầu tiên!
Sign up for free and join this conversation.
Sign Up
If you already have a RongvangIT account Login
Danh sách thư mục
Bắt đầu ngay với RồngVàngIT - nền tảng chia sẻ kiến thức lập trình tuyệt vời cho kỹ sư Việt Nam!

Hãy đăng nhập để sử dụng hàng loạt các chức năng tuyệt vời của RồngVàngIT !

  1. 1. Bạn sẽ nhận được các bài viết phù hợp bằng chức năng theo dõi tag và người dùng.
  2. 2. Bạn có thể đọc lại các thông tin hữu ích bằng chức năng lưu trữ nội dung.
  3. 3. Chia sẻ kiến thức, đặt câu hỏi và ghi lại quá trình trưởng thành của mình cùng RồngVàngIT !
Tạo tài khoản Đăng nhập
profile Pic