Mysql
 sql >> Baza danych >  >> RDS >> Mysql

sprawdź ograniczenie nie działa mysql

MySQL nie wymusza ograniczeń sprawdzania.

Jest to dobrze udokumentowane odstępstwo od standardu SQL. (Chociaż to nieoczekiwane dla niewtajemniczonych.)

Jeśli potrzebujesz bazy danych MySQL, aby wymusić „ograniczenie sprawdzające”, wymuszenie musi być zakodowane w BEFORE INSERT i BEFORE UPDATE wyzwalacz.

Ta uwaga:

jest pochowany w MySQL Reference Manual, pod CREATE TABLE składnia.

Odniesienie:https://dev.mysql.com/doc /refman/5.5/en/create-table.html

OSTRZEŻENIE DOTYCZĄCE ENUM

ENUM nie ogranicza możliwości wstawiania „nieprawidłowych” wartości; nieprawidłowa wartość jest tłumaczona na łańcuch o zerowej długości, wyświetlane jest ostrzeżenie, ale nie jest to błąd.

Demonstracja:

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. MySQL — Pobieranie najniższej wartości

  2. Jak uzyskać rekordy z ostatnich 10 minut w MySQL?

  3. Ionic framework i php mysql

  4. php - Jak wstawić dane tabeli HTML do MySQL?

  5. Jak wyświetlić błąd MySQL w PHP dla długiego zapytania, które zależy od danych wejściowych użytkownika?