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

MySQL dodaje kolumnę NOT NULL

W MySQL każdy typ kolumny ma "domyślne domyślne " wartość .

Jeśli kolumna NOT NULL jest dodana do tabeli i nie określono jawnego DEFAULT, niejawna wartość domyślna jest używana do wypełniania danych nowej kolumny. Podobne zasady obowiązują, gdy określona jest wartość DOMYŚLNA.

W związku z tym oryginalny DDL daje takie same wyniki jak:

-- After this, data will be the same, but schema has an EXPLICIT DEFAULT
ALTER TABLE t ADD c varchar(10) NOT NULL DEFAULT ''
-- Now we're back to the IMPLICIT DEFAULT (MySQL stores NULL internally)
ALTER TABLE t ALTER c DROP DEFAULT

Ustawienia trybu „ścisłego” wpływają na instrukcje DML polegające na wartościach domyślnych, ale nie wpływają na domyślne użycie domyślne po dodaniu kolumny.

Oto dowód na sqlfiddle ten tryb ścisły nie dotyczy instrukcji ALTER TABLE .. ADD.

To jest funkcja MySQL. Inne silniki, takie jak SQL Server, wymagają jawnego ograniczenia DEFAULT (lub kolumny NULL) dla takich zmian schematu.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. this._callback.apply nie jest funkcją! Błąd Node js Mysql

  2. Jak przechowywać walutę europejską w MySQL?

  3. Przekroczono limit czasu oczekiwania blokady; spróbuj zrestartować transakcję dla „zablokowanej tabeli Mysql?

  4. MySQL - CASE vs Instrukcja IF vs funkcja IF

  5. liczba duplikatów mysql