Mysql
 sql >> база данни >  >> RDS >> Mysql

Таблицата не може да се промени, получава се грешка 1067 Невалидна стойност по подразбиране

Малко информация относно sql_mode и „NO_ZERO_DATE“:http:// dev.mysql.com/doc/refman/5.1/en/sql-mode.html

Споменахте, че сте възстановили таблиците от друг сървър. Ако сте използвали mysqldump, тогава отговорът на въпроса ви е, че mysql е изключил режима „NO_ZERO_DATE“, докато зарежда изхвърления SQL. Mysqldump (тестван в 5.5) поставя този ред в горната част на изхвърления SQL:

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

Той също така изключва проверките на външни ключове и други полезни неща, докато зарежда дъмпа.

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

Това обяснява защо успяхте да възстановите масите, но когато се опитвате да промените, трябва да играете по по-строги правила. Ако наистина искате да отмените това, можете да опитате следното точно преди вашата алтер таблица:

mysql> SET SESSION sql_mode='';

След това променете таблицата.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Как да свържа Django към MySQL база данни през SSL връзка?

  2. Как да свържете множество стойности от множество таблици на релации в една заявка на mysql

  3. Използване на MySQL заявка за преминаване на редове за създаване на рекурсивно дърво

  4. Преобразувайте секундите в продължителност на времето, което може да се чете

  5. бавна mysql заявка, която трябва да се изпълнява стотици хиляди пъти на час