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

Kode Kesalahan:1005. Tidak dapat membuat tabel '...' (errno:150)

Kode Kesalahan:1005 -- ada referensi kunci utama yang salah dalam kode Anda

Biasanya karena bidang kunci asing yang direferensikan tidak ada. Mungkin Anda memiliki kesalahan ketik, atau periksa kasusnya harus sama, atau ada ketidakcocokan jenis bidang. Bidang terkait kunci asing harus sama persis dengan definisi.

Beberapa penyebab yang diketahui mungkin:

  1. Jenis dan/atau ukuran dua bidang utama tidak sama persis. Misalnya, jika salah satunya adalah INT(10) bidang kunci harus INT(10) juga dan bukan INT(11) atau TINYINT . Anda mungkin ingin mengonfirmasi ukuran bidang menggunakan SHOW CREATE TABLE karena Browser Kueri terkadang hanya menampilkan INTEGER untuk keduanya INT(10) dan INT(11) . Anda juga harus memeriksa bahwa yang satu tidak SIGNED dan yang lainnya UNSIGNED . Keduanya harus persis sama.
  2. Salah satu bidang kunci yang Anda coba rujuk tidak memiliki indeks dan/atau bukan kunci utama. Jika salah satu bidang dalam hubungan bukan kunci utama, Anda harus membuat indeks untuk bidang tersebut.
  3. Nama kunci asing adalah duplikat dari kunci yang sudah ada. Periksa apakah nama kunci asing Anda unik dalam database Anda. Cukup tambahkan beberapa karakter acak di akhir nama kunci Anda untuk mengujinya.
  4. Satu atau kedua tabel Anda adalah MyISAM meja. Untuk menggunakan kunci asing, tabel keduanya harus InnoDB . (Sebenarnya, jika kedua tabel adalah MyISAM maka Anda tidak akan mendapatkan pesan kesalahan - itu hanya tidak akan membuat kunci.) Di Browser Kueri, Anda dapat menentukan jenis tabel.
  5. Anda telah menentukan kaskade ON DELETE SET NULL , tetapi bidang kunci yang relevan disetel ke NOT NULL . Anda dapat memperbaikinya dengan mengubah kaskade atau menyetel bidang untuk mengizinkan NULL nilai.
  6. Pastikan bahwa opsi Charset dan Collate sama baik di tingkat tabel maupun tingkat bidang individual untuk kolom kunci.
  7. Anda memiliki nilai default (yaitu, default=0) pada kolom kunci asing
  8. Salah satu bidang dalam hubungan adalah bagian dari kunci kombinasi (gabungan) dan tidak memiliki indeks individualnya sendiri. Meskipun bidang memiliki indeks sebagai bagian dari kunci komposit, Anda harus membuat indeks terpisah hanya untuk bidang kunci tersebut agar dapat menggunakannya dalam batasan.
  9. Ada kesalahan sintaks di ALTER . Anda pernyataan atau Anda salah mengetik salah satu nama bidang dalam hubungan
  10. Nama kunci asing Anda melebihi panjang maksimum 64 karakter.

Untuk detail lebih lanjut, lihat:Nomor Kesalahan MySQL 1005 Tidak dapat membuat 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. Kehilangan koneksi ke server MySQL selama permintaan

  2. Rails 3 ActiveRecord:Pesan berdasarkan jumlah asosiasi

  3. Menghubungkan ke server MySQL jarak jauh menggunakan PHP

  4. Bagaimana cara menggunakan GROUP BY untuk menggabungkan string di MySQL?

  5. Penyeimbangan Beban PostgreSQL &Penyempurnaan ProxySQL - ClusterControl 1.5