Sqlserver
 sql >> Teknologi Basis Data >  >> RDS >> Sqlserver

Tidak ada kunci utama atau kandidat dalam tabel referensi yang cocok dengan daftar kolom referensi di kunci asing

Kunci asing bekerja dengan menggabungkan kolom ke kunci unik di tabel lain, dan kunci unik itu harus didefinisikan sebagai beberapa bentuk indeks unik, baik itu kunci utama, atau indeks unik lainnya.

Saat ini, satu-satunya indeks unik yang Anda miliki adalah indeks gabungan di ISBN, Title yang merupakan kunci utama Anda.

Ada sejumlah opsi yang terbuka untuk Anda, bergantung pada apa yang dimiliki BookTitle dan hubungan data di dalamnya.

Saya berani menebak bahwa ISBN unik untuk setiap baris di BookTitle. DENGAN asumsi demikian, maka ubah kunci utama Anda menjadi hanya pada ISBN, dan ubah BookCopy sehingga alih-alih Judul Anda memiliki ISBN dan bergabung dengan itu.

Jika Anda perlu menyimpan kunci utama Anda sebagai ISBN, Title maka Anda perlu menyimpan ISBN di BookCopy serta Judul, dan kunci asing di kedua kolom, ATAU Anda perlu membuat indeks unik di BookTitle(Judul) sebagai indeks yang berbeda.

Secara umum, Anda perlu memastikan bahwa kolom atau kolom yang Anda miliki di REFERENCES Anda klausa sama persis dengan indeks unik di tabel induk:dalam kasus Anda, klausa itu gagal karena Anda tidak memiliki satu indeks unik di Title sendirian.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Cari Tahu apakah Partisi Dikompresi di SQL Server (T-SQL)

  2. Periksa apakah Tabel Direferensikan oleh Kunci Asing di SQL Server dengan OBJECTPROPERTY()

  3. Menyiapkan database SQL Server lokal

  4. SQL 'LIKE' query menggunakan '%' di mana kriteria pencarian berisi '%'

  5. Cara Menghasilkan Data Uji di SQL Server