sql >> Databáze >  >> RDS >> Mysql

kontrola omezení nebude fungovat mysql

MySQL nevynucuje kontrolní omezení.

Toto je dobře zdokumentovaná odchylka od standardu SQL. (Ačkoli to nezasvěcené neočekávaly.)

Pokud potřebujete, aby databáze MySQL vynutila "kontrolní omezení", vynucení musí být zakódováno do BEFORE INSERT a BEFORE UPDATE spoušť.

Tato poznámka:

je pohřben v referenční příručce MySQL pod CREATE TABLE syntaxe.

Odkaz:https://dev.mysql.com/doc /refman/5.5/cs/create-table.html

UPOZORNĚNÍ O ENUM

ENUM neomezuje vkládání "neplatných" hodnot; neplatná hodnota se převede na řetězec nulové délky, vydá se varování, ale nejedná se o chybu.

Ukázka:

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. Dělená tabulka Oracle

  2. otázky k rozhovoru pro Oracle PLSQL

  3. Jak mohu v CodeIgniter vybrat ze vztahu jeden k mnoha?

  4. Vybrat náhodný řádek pro odlišnou hodnotu pole?