sql >> Database teknologi >  >> RDS >> Mysql

MySQL-kolonnen sat til NOT NULL, men tillader stadig NULL-værdier

Du indsætter tomme strenge, og tomme strenge er ikke NULL , for at kontrollere for NULL fejl gør:

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

og du vil se fejl. NOT NULL kontrollerer kun for værdier, der ikke er NULL .

For at forhindre tom streng enten skal du bruge triggere , eller foretag kontrol på serversidens programmeringssprog for at konvertere tomme strenge til NULL før du udfører INSERT query. Et eksempel på trigger for INSERT kan være sådan:(dette er kun et eksempel)

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


  1. Handlingen er ikke gyldig for tilstanden af ​​transaktionsfejlen og transaktionsomfanget

  2. hvordan man gemmer ckeditor-indhold i mysql-databasen

  3. ActiveRecord-fejl:SAVEPOINT active_record_1 eksisterer ikke

  4. Formater sysjobhistorie, dato og varighed Kolonner i SQL Server