Mysql
 sql >> Teknologi Basis Data >  >> RDS >> Mysql

Tidak dapat mengubah tabel, mendapatkan kesalahan 1067 Nilai default tidak valid

Beberapa latar belakang pada sql_mode dan 'NO_ZERO_DATE':http:// dev.mysql.com/doc/refman/5.1/en/sql-mode.html

Anda menyebutkan bahwa Anda memulihkan tabel dari server lain. Jika Anda menggunakan mysqldump maka jawaban untuk pertanyaan Anda adalah bahwa mysql mematikan mode 'NO_ZERO_DATE' saat memuat SQL yang dibuang. Mysqldump (diuji pada 5.5) menempatkan baris ini di atas SQL yang dibuang:

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

Ini juga mematikan pemeriksaan kunci asing dan hal-hal berguna lainnya saat memuat dump.

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

Ini menjelaskan mengapa Anda dapat memulihkan tabel, tetapi ketika mencoba mengubah Anda harus bermain dengan aturan yang lebih ketat. Jika Anda benar-benar ingin mengganti ini, Anda dapat mencoba yang berikut ini sebelum tabel alter Anda:

mysql> SET SESSION sql_mode='';

Kemudian ubah 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. Melewati parameter ke JDBC PreparedStatement

  2. Apakah mungkin untuk menambahkan kolom indeks utama peningkatan otomatis di tabel mysql lengkap terlambat?

  3. pengurutan khusus mysql

  4. Ubah array JSON di MySQL menjadi baris

  5. kueri database mysql dari dalam kelas