Mysql
 sql >> база данни >  >> RDS >> Mysql

Колоната на MySQL е зададена на NOT NULL, но все пак позволява NULL стойности

Вмъквате празни низове и празният низ не е NULL , за да проверите за NULL грешка направи:

INSERT INTO `addresses` (`street`, `city`, `state`, `zip`) VALUES (NULL, NULL, NULL, NULL);

и ще видите грешка. NOT NULL проверява само за стойности, които не са NULL .

За да предотвратите празен низ, трябва да използвате тригери , или направете проверките на езика за програмиране от страна на сървъра, за да конвертирате празните низове в NULL преди да извършите INSERT query. Примерен тригер за INSERT може да бъде като:(това е само пример)

CREATE TRIGGER avoid_empty
    BEFORE INSERT ON addresses
        FOR EACH ROW
        BEGIN
        IF street = '' THEN SET street = NULL END IF;
END; 


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Как да използвам GROUP BY за конкатенация на низове в MySQL?

  2. Mysql/Php - Текуща дата и час

  3. За какво се използват каталогът с анотации на JPA @Table и променливите на схемата?

  4. mysql база данни автоматично разделяне

  5. mysqli - Наистина ли трябва да направя $result->close(); &$mysqli->close();?