sql >> Base de Datos >  >> Database Tools >> phpMyAdmin

¿Cuál es el valor predeterminado para un campo si no se proporciona ningún valor predeterminado?

Haciendo referencia al manual ,

Para la entrada de datos para una columna NOT NULL que no tiene una cláusula DEFAULT explícita, si una instrucción INSERT o REPLACE no incluye ningún valor para la columna, o una instrucción UPDATE establece la columna en NULL, MySQL maneja la columna de acuerdo con el modo SQL vigente en ese momento:

  • Si el modo SQL estricto no está habilitado, MySQL establece la columna en el valor predeterminado implícito para el tipo de datos de la columna.
  • Si el modo estricto está habilitado, se produce un error para las tablas transaccionales y la declaración se revierte. Para las tablas no transaccionales, se produce un error
    , pero si esto sucede para la segunda fila o las subsiguientes de una declaración de varias filas, se habrán insertado las filas anteriores.

Entonces, su pregunta ahora puede ser, ¿cuáles son los valores predeterminados implícitos para los distintos tipos de datos de columna? Aquí tienes:

Los valores predeterminados implícitos se definen de la siguiente manera:

  • Para los tipos numéricos, el valor predeterminado es 0, con la excepción de los tipos enteros o de punto flotante declarados con el atributo AUTO_INCREMENT
    , el valor predeterminado es el siguiente valor en la secuencia.
  • Para los tipos de fecha y hora que no sean TIMESTAMP, el valor predeterminado es el valor "cero" apropiado para el tipo. Para la primera columna TIMESTAMP de una tabla, el valor predeterminado es la fecha y la hora actuales. Consulte la Sección 10.3, “Tipos de fecha y hora”.
  • Para tipos de cadena que no sean ENUM, el valor predeterminado es la cadena vacía. Para ENUM, el valor predeterminado es el primer valor de enumeración.