sql >> Database >  >> RDS >> Mysql

Kan tabel niet wijzigen, krijg fout 1067 Ongeldige standaardwaarde

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.




  1. SQLAlchemy Reflection:hoe vraag ik gegevens uit specifieke kolommen op?

  2. PostgreSQL-verbindingsreeks met ODBC-stuurprogramma in C#, trefwoord niet ondersteund:stuurprogramma

  3. Mysql-database verplaatsen van de ene server naar een andere server

  4. PostGIS Homebrew-installatie die verwijst naar een oud pad?