Mysql
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Mysql

Phạm vi số nguyên SQL khi tạo bảng

Ghi chú của tác giả :hai phần đầu tiên của câu trả lời này không chính xác. Tôi nghĩ MySQL hỗ trợ CHECK hạn chế và nó đã không. Vẫn không. Để giới hạn các cột trong một danh sách giá trị đơn giản, hãy sử dụng ENUM cách tiếp cận ở cuối câu trả lời này. Nếu logic phức tạp hơn (phạm vi giá trị, giá trị dựa trên cột khác, v.v.), thì tùy chọn MySQL duy nhất là trình kích hoạt.

Bạn cần CHECK ràng buộc nếu đó là một INT :

CREATE TABLE Site (
  SiteID INT,
  CONSTRAINT SiteID_Ck CHECK (SiteID IN (1, 2, 3, 4)),
  ... and the rest

Hoặc:

CREATE TABLE Site (
  SiteID INT,
  CONSTRAINT SiteID_Ck CHECK (SiteID BETWEEN 1 AND 4),
  ... and the rest

Hoặc nếu bạn có thể sống với một SiteID chuỗi thì:

CREATE TABLE Site (
  SiteID ENUM('1', '2', '3', '4'),
  ... and the rest



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Có MySQL .. CHÈN ... TRÊN CHỌN TỪ KHÓA DUPLICATE không?

  2. SQL DELETE với THAM GIA một bảng khác cho điều kiện WHERE

  3. Làm cách nào để hiển thị lỗi cho truy vấn MySQLi của tôi?

  4. MySqlDb ném Toán hạng phải chứa 1 (các) cột trên câu lệnh chèn bỏ qua

  5. Khóa chính có được tự động lập chỉ mục trong MySQL không?