Lite bakgrund om sql_mode och 'NO_ZERO_DATE':http:// dev.mysql.com/doc/refman/5.1/en/sql-mode.html
Du nämnde att du återställde tabellerna från en annan server. Om du använde mysqldump så är svaret på din fråga att mysql stängde av läget 'NO_ZERO_DATE' när du laddade den dumpade SQL-filen. Mysqldump (testat i 5.5) placerar den här raden överst i den dumpade SQL-filen:
/*!40101 SET @[email protected]@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO' */;
Det stänger också av kontroller av främmande nycklar och andra användbara saker när du laddar dumpen.
/*!40014 SET @[email protected]@UNIQUE_CHECKS, UNIQUE_CHECKS=0 */;
/*!40014 SET @[email protected]@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0 */;
Detta förklarar varför du kunde återställa borden, men när du försöker ändra måste du spela enligt striktare regler. Om du verkligen vill åsidosätta detta kan du prova följande precis innan din ändringstabell:
mysql> SET SESSION sql_mode='';
Ändra sedan tabell.