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

MySQL добавя колона NOT NULL

В MySQL всеки тип колона има "неявно подразбиране " стойност .

Ако колона NOT NULL е добавена към таблица и не е посочена изрична стойност по подразбиране, неявната стойност по подразбиране се използва за попълване на данните за новата колона. Подобни правила се прилагат, когато е посочена стойността ПО ПОДРАЗБИРАНЕ.

Като такъв, оригиналният DDL дава същите резултати като:

-- 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

Настройките на "строгия" режим засягат DML изразите, разчитащи на стойности по подразбиране, но не засягат имплицитното използване по подразбиране, когато колоната се добави.

Ето sqlfiddle "доказателство" че строг режим не се прилага за оператора ALTER TABLE .. ADD.

Това е функция на MySQL. Други машини, като SQL Server, изискват изрично ограничение DEFAULT (или колона NULL) за такива промени в схемата.




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

  2. Как мога да синхронизирам две MySQL таблици, които имат еднакви структури и различен сървър

  3. mySQL DataSource на Visual Studio 2012

  4. PHP PDO с foreach и извличане

  5. 3 начина за „дехексиране“ на низ в MySQL