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

SQL - kode kesalahan 1005 dengan nomor kesalahan 121

Kesalahan 121 berarti ada kesalahan batasan kunci asing. Karena Anda menggunakan InnoDB, Anda dapat menggunakan SHOW ENGINE INNODB STATUS setelah menjalankan kueri yang gagal untuk mendapatkan penjelasan di LATEST FOREIGN KEY ERROR bagian. Setelah menjalankan SQL Anda sendiri, saya mendapatkan ini:

------------------------
LATEST FOREIGN KEY ERROR
------------------------
101210 14:55:50 Error in foreign key constraint creation for table `regula`.`Reservation`.
A foreign key constraint of name `regula`.`prjId`
already exists. (Note that internally InnoDB adds 'databasename'
in front of the user-defined constraint name.)
Note that InnoDB's FOREIGN KEY system tables store
constraint names as case-insensitive, with the
MySQL standard latin1_swedish_ci collation. If you
create tables or databases whose names differ only in
the character case, then collisions in constraint
names can occur. Workaround: name your constraints
explicitly with unique names.

Pada dasarnya, Anda perlu memberi nama kendala prjId Anda nama unik di tabel terakhir. Kendala/nama kunci asing bersifat global ke database, sehingga tidak dapat digunakan kembali di tabel yang berbeda. Ganti saja yang terakhir

  CONSTRAINT `prjId`

untuk

  CONSTRAINT `prjId2`


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Apa cara terbaik untuk menangani sesi untuk situs PHP di banyak host?

  2. MySQL - Menggabungkan beberapa kondisi WHEN dalam CASE

  3. Gagal Terhubung ke MySQL di localhost:3306 dengan root pengguna

  4. MySQL:Hitung catatan dari satu tabel dan kemudian perbarui yang lain

  5. PHP - Azure mySQL dalam aplikasi Mengubah Port Secara Acak