Rumah  >  Artikel  >  pangkalan data  >  Rekod manakah yang disimpan apabila menggunakan `ALTER IGNORE TABLE ADD UNIQUE` dalam MySQL?

Rekod manakah yang disimpan apabila menggunakan `ALTER IGNORE TABLE ADD UNIQUE` dalam MySQL?

Mary-Kate Olsen
Mary-Kate Olsenasal
2024-11-04 02:51:29759semak imbas

Which record is preserved when using `ALTER IGNORE TABLE ADD UNIQUE` in MySQL?

MySQL: ALTER IGNORE TABLE ADD UNIQUE - Rekod Implikasi Pemangkasan

Pernyataan ALTER TABLE dengan klausa IGNORE digunakan untuk menambah kekangan unik ke jadual, berpotensi mengalih keluar rekod pendua. Walau bagaimanapun, rekod tertentu yang disimpan boleh menimbulkan persoalan.

Soalan:

Apabila melaksanakan pernyataan berikut:

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

Rekod yang manakah akan disimpan jika terdapat berbilang rekod pendua dengan jenis dan nilai pemilik yang sama?

Jawapan:

Setakat MySQL 5.7.4, klausa IGNORE tidak lagi disokong dan penggunaannya akan mengakibatkan ralat.

Walau bagaimanapun, dalam versi MySQL terdahulu yang membenarkan klausa IGNORE:

  • Rekod Pertama Dikekalkan: Hanya baris pertama dalam jadual dengan kombinasi kekunci unik akan disimpan.
  • Baris Pendua Dipenggal: Semua baris lain dengan kombinasi kekunci unik yang sama akan menjadi dipadamkan.

Menurut dokumentasi MySQL, "first" berkemungkinan merujuk kepada rekod dengan nilai kunci utama yang paling rendah. Dalam kes anda, andaikan lajur ID ialah kunci utama, rekod dengan ID terkecil akan disimpan.

Atas ialah kandungan terperinci Rekod manakah yang disimpan apabila menggunakan `ALTER IGNORE TABLE ADD UNIQUE` 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