sql >> Base de Datos >  >> RDS >> Mysql

No se puede modificar la tabla, se obtiene el error 1067 Valor predeterminado no válido

Algunos antecedentes sobre sql_mode y 'NO_ZERO_DATE':http:// dev.mysql.com/doc/refman/5.1/en/sql-mode.html

Mencionaste que restauraste las tablas desde otro servidor. Si usó mysqldump, entonces la respuesta a su pregunta es que mysql desactivó el modo 'NO_ZERO_DATE' mientras cargaba el SQL descargado. Mysqldump (probado en 5.5) coloca esta línea en la parte superior del SQL volcado:

/*!40101 SET @[email protected]@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO' */;

También desactiva las comprobaciones de claves externas y otras cosas útiles mientras carga el volcado.

/*!40014 SET @[email protected]@UNIQUE_CHECKS, UNIQUE_CHECKS=0 */;
/*!40014 SET @[email protected]@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0 */;

Esto explica por qué pudiste restaurar las tablas, pero cuando intentas modificarlas debes jugar con reglas más estrictas. Si realmente desea anular esto, puede intentar lo siguiente justo antes de su tabla modificada:

mysql> SET SESSION sql_mode='';

Luego modifique la tabla.