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

Batasan kunci asing duplikat Mysql

Jika Anda melihat hasil kueri Anda, kunci asing bid_ibfk_3 sudah ada . Sebenarnya itu ada di baris kedua hasil.

carpre>def projekt_classics bid_ibfk_2 projekt_classics bid FOREIGN KEY --the row below is the foreign key that you are trying to create def projekt_classics bid_ibfk_3 projekt_classics bid FOREIGN KEY def projekt_classics car_ibfk_1 projekt_classics car FOREIGN KEY def projekt_classics car_ibfk_3 projekt_classics car FOREIGN KEY def projekt_classics car_ibfk_4 projekt_classics car FOREIGN KEY def projekt_classics car_brand_ibfk_1 projekt_classics car_brand FOREIGN KEY

Itu sebabnya Anda mendapatkan nama batasan kunci asing duplikat saat Anda mencoba menjalankan ini:

ADD CONSTRAINT `bid_ibfk_3` FOREIGN KEY (`car_id`) REFERENCES `car` (`car_id`)
 

Anda dapat mengubah kueri Anda untuk memeriksa terlebih dahulu apakah kunci asing yang Anda coba buat tidak ada, sebelum benar-benar membuatnya.

IF NOT EXISTS (SELECT NULL FROM INFORMATION_SCHEMA.TABLE_CONSTRAINTS
                   WHERE CONSTRAINT_SCHEMA = DATABASE()
                         AND CONSTRAINT_TYPE = 'FOREIGN KEY'
                         AND CONSTRAINT_NAME = 'bid_ibfk_3') THEN
   ALTER TABLE `bid` ADD CONSTRAINT `bid_ibfk_3`
        FOREIGN KEY (`car_id`) REFERENCES `car` (`car_id`);
END IF
 



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Perlu MySQL INSERT - PILIH kueri untuk tabel dengan jutaan catatan

  2. mengapa saya mendapatkan kesalahan sintaks untuk pernyataan yang disiapkan?

  3. Kembalikan struktur tabel dari file frm dan ibd

  4. Apakah penurunan harga (dengan strip_tags) cukup untuk menghentikan serangan XSS?

  5. Memasukkan baris baru menggunakan pemicu di tabel yang sama