Wat achtergrondinformatie over sql_mode en 'NO_ZERO_DATE':https:// 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 @example@sqldat.com@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 @example@sqldat.com@UNIQUE_CHECKS, UNIQUE_CHECKS=0 */;
/*!40014 SET @example@sqldat.com@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.