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

Loại MySQL ENUM so với các bảng tham gia

  • Việc thay đổi tập hợp các giá trị trong ENUM yêu cầu phải có ALTER TABLE điều này có thể gây ra cấu trúc lại bảng - một thao tác cực kỳ tốn kém (cấu trúc lại bảng không xảy ra nếu bạn chỉ cần thêm một giá trị mới vào cuối định nghĩa ENUM, nhưng nếu bạn xóa một hoặc thay đổi thứ tự, nó sẽ xảy ra một bảng tái cấu trúc). Trong khi đó, việc thay đổi bộ giá trị trong bảng tra cứu chỉ đơn giản như CHÈN hoặc XÓA.

  • Không có cách nào để liên kết các thuộc tính khác với các giá trị trong ENUM, chẳng hạn như những thuộc tính nào đã ngừng hoạt động và những thuộc tính nào đủ điều kiện để đưa vào danh sách thả xuống trong giao diện người dùng của bạn. Tuy nhiên, bảng tra cứu có thể bao gồm các cột bổ sung cho các thuộc tính đó.

  • Rất khó truy vấn ENUM để nhận danh sách các giá trị riêng biệt, về cơ bản yêu cầu bạn truy vấn định nghĩa kiểu dữ liệu từ INFORMATION_SCHEMA và phân tích cú pháp danh sách ra khỏi BLOB được trả về. Bạn có thể thử SELECT DISTINCT status từ bảng của bạn, nhưng điều đó chỉ nhận các giá trị trạng thái hiện đang được sử dụng, có thể không phải là tất cả các giá trị trong ENUM. Tuy nhiên, nếu bạn giữ các giá trị trong bảng tra cứu, bạn sẽ dễ dàng truy vấn, sắp xếp, v.v.

Tôi không phải là một fan hâm mộ lớn của ENUM, như bạn có thể nói. :-)

Điều tương tự cũng áp dụng cho các ràng buộc CHECK chỉ đơn giản là so sánh một cột với một tập giá trị cố định. Mặc dù MySQL không hỗ trợ ràng buộc CHECK.

Cập nhật:MySQL 8.0.16 hiện triển khai KIỂM TRA ràng buộc .



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. MySql Single Table, Chọn 7 ngày qua và bao gồm các hàng trống

  2. Những sai lầm hàng đầu cần tránh trong MySQL Replication

  3. Loại lỗi cú pháp không hợp lệ =MyISAM trong DDL được tạo bởi Hibernate

  4. Dễ dàng thiết lập máy chủ web với XAMPP

  5. Tìm kiếm MySQL trong danh sách dấu phẩy