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

kiểm tra ràng buộc sẽ không hoạt động mysql

MySQL không thực thi các ràng buộc kiểm tra.

Đây là một sai lệch được ghi nhận rõ ràng so với tiêu chuẩn SQL. (Mặc dù nó không mong đợi bởi những người chưa bắt đầu.)

Nếu bạn cần cơ sở dữ liệu MySQL để thực thi "ràng buộc kiểm tra", thì việc thực thi phải được mã hóa thành BEFORE INSERTBEFORE UPDATE kích hoạt.

Lưu ý này:

được chôn trong MySQL Reference Manual, trong CREATE TABLE cú pháp.

Tham khảo: https://dev.mysql.com/doc /refman/5.5/en/create-table.html

CẢNH BÁO VỀ ENUM

ENUM không hạn chế các giá trị "không hợp lệ" được chèn vào; một giá trị không hợp lệ được chuyển thành một chuỗi có độ dài bằng 0, một cảnh báo được đưa ra, nhưng đó không phải là lỗi.

Trình diễn:

CREATE TABLE foo (gen ENUM('M','F'))

INSERT INTO foo (gen) VALUES ('x')

-- Warning Code : 1265
-- Data truncated for column 'gen' at row 1

SELECT gen, CHAR_LENGTH(gen) FROM foo;

-- gen  CHAR_LENGTH(gen)  
-- ---  ----------------
--                     0


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Chạy di chuyển với Rails trong vùng chứa Docker với nhiều bản sao vùng chứa

  2. Kết xuất Bảng sai cách:hoán vị Cột và Hàng?

  3. Truy vấn MySQL trả về các hàng trùng lặp

  4. Cakephp:trong khi chèn trường tinyint. Chỉ nhận được 0 hoặc 1

  5. error -1054 cột e.id không xác định trong mệnh đề thứ tự