Mengenal pasti dan Mengalih Keluar Baris Pendua dalam Pangkalan Data SQLite
Pertindihan dalam rekod pangkalan data boleh timbul, menimbulkan cabaran apabila mengekalkan integriti data dan mengoptimumkan prestasi. Senario ini melibatkan jadual SQLite3 yang besar dengan dua lajur, 'cincang' (teks) dan 'd' (sebenar), di mana beberapa baris mempamerkan nilai pendua untuk kedua-dua lajur. Objektifnya adalah untuk memadamkan baris pendua ini dengan cekap sambil mengekalkan baris unik.
Penyelesaian yang disediakan menggunakan lajur rowid unik dalam SQLite untuk membezakan baris. Pertanyaan di bawah menyasarkan dan menghapuskan baris pendua dengan mengekalkan nilai rowid terendah untuk setiap gabungan unik nilai 'cincang' dan 'd':
delete from YourTable where rowid not in ( select min(rowid) from YourTable group by hash , d )
Pertanyaan ini beroperasi dengan mengenal pasti rowid minimum untuk setiap gabungan yang berbeza dahulu daripada nilai 'hash' dan 'd' melalui subkueri. Fungsi 'min(rowid)' mengekstrak rowid terendah untuk setiap kumpulan pasangan 'hash' dan 'd' yang sama. Selepas itu, pertanyaan utama menggunakan klausa 'rowid not in' untuk memadam mana-mana baris yang rowidnya tidak sepadan dengan rowid minimum untuk nilai 'hash' dan 'd' masing-masing.
Dengan memanfaatkan pendekatan ini, pertanyaan cekap mengenal pasti dan mengalih keluar baris pendua sambil mengekalkan data unik dalam jadual. Penggunaan lajur rowid sebagai pengecam unik memudahkan proses pemadaman yang pantas dan berkesan, memastikan ketepatan data dan mengoptimumkan prestasi pangkalan data untuk operasi masa hadapan.
Atas ialah kandungan terperinci Bagaimana untuk Memadam Baris Pendua dengan Cekap dalam Pangkalan Data SQLite?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!