Tengo un problema estúpido con SQL que no puedo solucionar.
ALTER TABLE `noticias` ADD `dateAdded` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP AUTO_INCREMENT, AÑADIR CLAVE PRIMARIA (`dateAdded`)
Error:
(#1067)Invalid default value for 'dateAdded'
¿Puede alguien ayudarme?
AUTO_INCREMENT
DATETIME
?Respuestas:
CURRENT_TIMESTAMP
solo es aceptable en losTIMESTAMP
campos.DATETIME
los campos deben dejarse con un valor predeterminado nulo o sin ningún valor predeterminado; los valores predeterminados deben ser un valor constante, no el resultado de una expresión.documentos relevantes: http://dev.mysql.com/doc/refman/5.0/en/data-type-defaults.html
Puede solucionar esto configurando un activador posterior a la inserción en la tabla para completar un valor "ahora" en cualquier registro nuevo.
fuente
CURRENT_TIMESTAMP
es específico de la versión y ahora está permitido paraDATETIME
columnas a partir de la versión 5.6.Consulte los documentos de MySQL .
fuente
También tenga en cuenta que al especificar
DATETIME
comoDATETIME(3)
o me gusta en MySQL 5.7.x, también debe agregar el mismo valor paraCURRENT_TIMESTAMP(3)
. De lo contrario, seguirá arrojando ' Valor predeterminado no válido '.fuente
Tuve el mismo problema, la siguiente solución resolvió mi problema.
Seleccione el tipo como 'TIMESTAMP'
NO ENTRE NADA EN EL CAMPO LONGITUD / VALORES. MANTÉNGALO EN BLANCO
Seleccione CURRENT_TIMESTAMP como valor predeterminado.
Estoy usando MySQL ver 5.5.56
fuente
Tengo mysql versión 5.6.27 en mi LEMP y CURRENT_TIMESTAMP como valor predeterminado funciona bien.
fuente
mysql versión 5.5 establece el valor predeterminado de fecha y hora como CURRENT_TIMESTAMP será un error de informe que puede actualizar a la versión 5.6, establece el valor predeterminado de fecha y hora como CURRENT_TIMESTAMP
fuente
¡Cambie el tipo de fecha y hora a marca de tiempo y funcionará! Tuve el mismo problema para mysql 5.5.56-MariaDB - MariaDB Server Espero que pueda ayudar ... lo siento si está depricado
fuente