Quantcast
Channel: cc :: somkiat
Viewing all articles
Browse latest Browse all 1997

ว่าด้วยเรื่องของ Serial ใน PostgreSQL

$
0
0

พอดีนั่งอ่านหนังสือไปเรื่อย ๆ
ก็เจอคำถามใน facebook เรื่องของการ กำหนด Primary key ใน PostgreSQL
ซึ่งมีทั้งการใช้ Serial, Primary key และ Constraint
จึงลองไปดูการทำงานของ Serial หน่อยว่าเป็นอย่างไร ?

ปกติแล้วนั้น serial ใน PostgreSQL มันคือ

auto increment ใน MySQL/SQLite นั่นเอง
มักจะใช้งานแบบนี้

[gist id="f6e8b94312ecb8bd7ec39ed1ef72107e" file="1.txt"]

การทำงานภายในจะเป็นดังนี้

[gist id="f6e8b94312ecb8bd7ec39ed1ef72107e" file="2.txt"]

Data type ที่ PostgreSQL มีให้เลือกคือ

  • SMALLSERIAL ค่าระหว่าง 1-32,767
  • SERIAL ค่าระหว่าง 1-2,147,483,647
  • BIGSERIAL ค่าระหว่าง 1-9,223,372,036,854,775,807

โดยที่การทำงานของ Serial เป็นดังนี้
ค่าของ sequence number จะเริ่มที่ 1 และเพิ่มครั้งละ 1
Constraint ที่มาพร้อมคือ NOT NULL
ส่วน Primary หรือ Unique key ไม่จำเป็นต้องใส่
มันขึ้นอยู่ที่ความต้องการของเราเอง

ถ้าเป็น Primary Key ง่าย ๆ ก็ใช้งานแบบนี้

[gist id="f6e8b94312ecb8bd7ec39ed1ef72107e" file="3.txt"]

แต่ถ้าเป็น composite key ก็ใช้งาน constraint จะเหมาะสมกว่า

[gist id="f6e8b94312ecb8bd7ec39ed1ef72107e" file="4.txt"]

ลองใช้งานกันดูครับ

Reference Websites

PostgreSQL Documentation :: Numeric Type


Viewing all articles
Browse latest Browse all 1997

Trending Articles