</>
⌕
Mid #primary-key#foreign-key#constraint

PRIMARY KEY, FOREIGN KEY và các constraint chính

⚡ Trả lời nhanh

PRIMARY KEY định danh duy nhất mỗi dòng (UNIQUE + NOT NULL, một bảng chỉ có một). FOREIGN KEY ràng buộc tham chiếu sang khoá bảng khác, kèm hành vi ON DELETE. Ngoài ra có UNIQUE, NOT NULL, CHECK, DEFAULT để bảo vệ dữ liệu ngay ở DB.

CREATE TABLE orders (
  id         BIGINT PRIMARY KEY,
  user_id    BIGINT NOT NULL REFERENCES users(id) ON DELETE RESTRICT,
  status     VARCHAR(20) NOT NULL DEFAULT 'new'
             CHECK (status IN ('new','paid','shipped')),
  code       VARCHAR(30) UNIQUE
);
ON DELETEHành vi
RESTRICT / NO ACTIONchặn xoá dòng cha
CASCADExoá luôn dòng con
SET NULLđặt cột con thành NULL
  • Surrogate key (id tự sinh) ổn định hơn natural key (email) vì natural key có thể đổi.
  • UNIQUE cho phép NULL (số lượng NULL tuỳ DBMS), PRIMARY KEY thì không.
🃏 Ôn bằng flashcard