Rumah  >  Artikel  >  pangkalan data  >  Apa yang perlu dilakukan dengan ralat mysql 1022

Apa yang perlu dilakukan dengan ralat mysql 1022

藏色散人
藏色散人asal
2023-02-16 09:43:172292semak imbas

ralat mysql 1022 disebabkan oleh nama kunci asing pendua Penyelesaiannya ialah: 1. Gunakan perintah "pilih * daripada INFORMATION_SCHEMA.KEY_COLUMN_USAGE di mana CONSTRAINT_NAME='...'" untuk mencari nama kunci asing pendua; . Hanya menamakan semula nama kunci asing.

Apa yang perlu dilakukan dengan ralat mysql 1022

Persekitaran pengendalian tutorial ini: sistem Windows 10, MySQL versi 5.7, komputer Dell G3.

Apa yang perlu dilakukan dengan ralat mysql 1022?

ralat mysql Kod Ralat: 1022. Tidak boleh menulis; kunci pendua dalam jadual `xxx`

Penjelasan: Ralat ini ialah nama kunci asing pendua

Cari nama kunci asing pendua dan di mana ia digunakan sql adalah seperti berikut:

select * from INFORMATION_SCHEMA.KEY_COLUMN_USAGE  where CONSTRAINT_NAME='重复的外键名称'

Jika tiada masalah, namakan sahaja.

Pelanjutan berkaitan:

1 Definisi kunci asing

Kunci asing ialah lajur dalam jadual yang disertakan dalam kunci utama jadual lain.

Kunci asing juga merupakan sejenis indeks, yang mengaitkan dua jadual dengan menghalakan lajur dalam satu jadual ke kunci utama dalam jadual lain.

Sesuatu jadual boleh mempunyai satu kunci asing, atau mungkin terdapat berbilang kunci asing yang dikaitkan dengan berbilang jadual.

2 Peranan kunci asing

Peranan utama kunci asing adalah untuk memastikan ketekalan dan integriti data serta mengurangkan lebihan data.

terutamanya dicerminkan dalam dua aspek berikut:

  • Sekat pelaksanaan

Masukkan baris baharu daripada jadual dengannya nilai kunci asing Jika nilai kunci utama bukan jadual utama, sisipan akan disekat.

Ubah suai nilai kunci asing daripada jadual Jika nilai baharu bukan nilai kunci utama jadual utama, pengubahsuaian disekat.

Jika baris dipadamkan daripada jadual induk, nilai kunci utamanya akan menghalang pemadaman jika ia wujud dalam jadual hamba (jika anda mahu memadamkannya, anda mesti memadamkan baris yang berkaitan terlebih dahulu daripada jadual hamba) .

Jadual induk mengubah suai nilai kunci utama Jika nilai lama wujud dalam jadual hamba, pengubahsuaian disekat (jika anda ingin mengubah suai, anda mesti memadamkan baris yang berkaitan daripada jadual hamba).

  • Pelaksanaan lata

Padam baris daripada jadual utama dan padam baris yang berkaitan daripada jadual bersama-sama.

Ubah suai nilai kunci utama jadual utama dan ubah suai nilai kunci asing bagi baris yang berkaitan dalam jadual hamba bersama-sama.

3 Sekatan penciptaan kunci asing

Jadual induk mesti sudah wujud dalam pangkalan data, atau jadual yang sedang dibuat.

Jika ia adalah kes kedua, jadual induk dan jadual anak adalah jadual yang sama dipanggil jadual rujukan kendiri, dan struktur ini dipanggil integriti rujukan sendiri.

Kunci utama mesti ditakrifkan untuk jadual induk.

Bilangan lajur dalam kunci asing mestilah sama dengan bilangan lajur dalam kunci utama jadual induk.

Dua jadual mestilah jadual InnoDB pada masa ini tidak menyokong kunci asing.

Lajur kunci asing mesti diindeks MySQL 4.1.2 dan versi yang lebih baru akan membuat indeks secara automatik apabila mewujudkan kunci asing, tetapi dalam versi terdahulu, ia perlu dibuat secara eksplisit.

Lajur kedua-dua jadual dalam hubungan kunci asing mesti mempunyai jenis data yang serupa, iaitu lajur yang boleh ditukar kepada satu sama lain Contohnya, int dan tinyint boleh digunakan, tetapi int dan char tidak boleh .

Pembelajaran yang disyorkan: "Tutorial Video MySQL"

Atas ialah kandungan terperinci Apa yang perlu dilakukan dengan ralat mysql 1022. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn