Rumah  >  Artikel  >  pangkalan data  >  Bagaimanakah `ALTER IGNORE TABLE ADD UNIQUE` Mengendalikan Rekod Pendua dalam MySQL?

Bagaimanakah `ALTER IGNORE TABLE ADD UNIQUE` Mengendalikan Rekod Pendua dalam MySQL?

Mary-Kate Olsen
Mary-Kate Olsenasal
2024-11-03 17:58:30800semak imbas

How Does `ALTER IGNORE TABLE ADD UNIQUE` Handle Duplicate Records in MySQL?

MySQL: ALTER IGNORE TABLE ADD UNIQUE - Rekod Mana Yang Masih Ada?

Apabila menggunakan pernyataan ALTER IGNORE TABLE ADD UNIQUE dalam MySQL, ia adalah penting untuk memahami kelakuannya berkenaan rekod pendua dengan nilai kunci unik yang serupa.

Khususnya, dalam versi MySQL sebelum 5.7.4, klausa IGNORE membenarkan rekod pendua dikendalikan secara berbeza. Untuk operasi ALTER TABLE yang anda berikan:

ALTER IGNORE TABLE `my_table`
    ADD UNIQUE (`type`, `owner`);

Jika terdapat rekod dengan jenis pendua dan nilai pemilik, tingkah laku bergantung pada kewujudan kunci utama.

Dengan Kunci Utama (cth., ID AUTO_INCREMENT PRIMARY KEY)

Dalam kes ini, rekod dengan ID terkecil akan disimpan, manakala semua rekod pendua lain dengan jenis dan nilai pemilik akan dipadamkan. Klausa IGNORE mengarahkan MySQL untuk mengabaikan sebarang konflik yang disebabkan oleh nilai kunci pendua.

Tanpa Kunci Utama

Jika tiada kunci utama wujud, gelagat sebenar ALTER IGNORE TABLE ialah lebih samar-samar. Versi MySQL yang berbeza mungkin mengendalikan situasi ini secara berbeza, jadi secara amnya disyorkan untuk mengelak daripada menggunakan IGNORE tanpa kunci utama.

Dalam MySQL 5.7.4 dan Kemudian

Adalah penting untuk ambil perhatian bahawa klausa IGNORE untuk ALTER TABLE telah dialih keluar daripada MySQL 5.7.4 dan seterusnya. Percubaan untuk menggunakan IGNORE dalam versi ini akan mengakibatkan ralat.

Atas ialah kandungan terperinci Bagaimanakah `ALTER IGNORE TABLE ADD UNIQUE` Mengendalikan Rekod Pendua dalam MySQL?. 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