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

Kolumna MySQL ustawiona na NOT NULL, ale nadal zezwalająca na wartości NULL

Wstawiasz puste ciągi, a puste ciągi nie są NULL , aby sprawdzić NULL błąd zrobić:

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

i zobaczysz błąd. NOT NULL sprawdza tylko wartości, które nie są NULL .

Aby zapobiec pustym ciągom, musisz użyć wyzwalaczy , lub sprawdź język programowania po stronie serwera, aby przekonwertować puste ciągi na NULL przed wykonaniem INSERT query.Przykładowy wyzwalacz dla INSERT może wyglądać tak:(to tylko przykład)

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. Jak przekazać wartości oddzielone przecinkami do procedury składowanej w MySql?

  2. mysql - w jaki sposób można pomóc w wyszukiwaniu pełnotekstowym za pomocą innego indeksu?

  3. Kiedy używać TEXT w mysql zamiast VARCHAR

  4. Kod PHP do wstawienia wartości pola wyboru do określonej kolumny w mysql z wybranym formularzem

  5. Szyfrowanie w spoczynku i/lub AES_ENCRYPT