Mysql
 sql >> Baza danych >  >> RDS >> Mysql

Nie można zmienić tabeli, pojawia się błąd 1067 Nieprawidłowa wartość domyślna

Trochę informacji o sql_mode i 'NO_ZERO_DATE':http:// dev.mysql.com/doc/refman/5.1/en/sql-mode.html

Wspomniałeś, że przywróciłeś tabele z innego serwera. Jeśli użyłeś mysqldump, to odpowiedź na twoje pytanie jest taka, że ​​mysql wyłączył tryb 'NO_ZERO_DATE' podczas ładowania zrzuconego SQL. Mysqldump (testowane w 5.5) umieszcza tę linię na górze zrzuconego kodu SQL:

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

Wyłącza również sprawdzanie kluczy obcych i inne przydatne rzeczy podczas ładowania zrzutu.

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

To wyjaśnia, dlaczego udało Ci się przywrócić stoły, ale próbując je zmienić, musisz grać według surowszych zasad. Jeśli naprawdę chcesz to zmienić, możesz spróbować wykonać następujące czynności tuż przed tabelą alter:

mysql> SET SESSION sql_mode='';

Następnie zmień tabelę.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Jak stworzyć bazę danych MySql przy użyciu php shell_exec?

  2. Błąd:SQLSTATE[HY000] [2002] Brak takiego pliku lub katalogu

  3. Jak zmienić sortowanie kolumn bez utraty lub zmiany danych?

  4. Wymagana pomoc dotycząca kwerend wyboru SQL

  5. mysql dodatkowe kolumny o tej samej nazwie z dwóch tabel