Wat achtergrondinformatie over sql_mode en 'NO_ZERO_DATE':http:// dev.mysql.com/doc/refman/5.1/en/sql-mode.html
U zei dat u de tabellen van een andere server had hersteld. Als je mysqldump hebt gebruikt, is het antwoord op je vraag dat mysql de modus 'NO_ZERO_DATE' heeft uitgeschakeld tijdens het laden van de gedumpte SQL. Mysqldump (getest in 5.5) plaatst deze regel bovenaan de gedumpte SQL:
/*!40101 SET @[email protected]@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO' */;
Het schakelt ook buitenlandse sleutelcontroles en andere handige dingen uit tijdens het laden van de dump.
/*!40014 SET @[email protected]@UNIQUE_CHECKS, UNIQUE_CHECKS=0 */;
/*!40014 SET @[email protected]@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0 */;
Dit verklaart waarom je de tafels kon herstellen, maar als je probeert te veranderen, moet je volgens strengere regels spelen. Als je dit echt wilt overschrijven, kun je het volgende proberen net voor je wijzigingstabel:
mysql> SET SESSION sql_mode='';
Verander dan de tafel.