Rumah >pangkalan data >tutorial mysql >Bagaimana untuk Menyelesaikan Ralat MySQL 1062: Entri Pendua '0' untuk Kunci 'PRIMER' Tanpa Kehilangan Data?
Ralat MySQL 1062: Mencipta Penyelesaian Tanpa Kehilangan Data
Dalam bidang MySQL, anda menghadapi ralat 1062: "Entri pendua '0 ' untuk kunci 'PRIMER'". Ini timbul apabila cuba menukar kunci utama jadual sambil mengekalkan hubungan kunci asing dan integriti data. Untuk menyelidiki perkara ini, mari kita periksa kes yang dibentangkan.
Pertanyaan yang disediakan bertujuan untuk mengubah taburan momento_jadual dengan menambahkan lajur id baharu sebagai kunci utama sambil mengekalkan perhubungan sedia ada. Walau bagaimanapun, pertanyaan gagal kerana entri pendua dalam kunci utama baharu.
Analisis mendedahkan bahawa lajur id yang baru dibuat mengandungi nilai '0' di seluruh barisnya. Oleh kerana kunci utama mesti mengandungi nilai unik, pertindihan ini menjadi penghalang. Untuk mengatasinya, kita perlu mengkonfigurasi lajur id sebagai kenaikan automatik, memastikan penjanaan nilai unik secara automatik.
Pertanyaan Semakan untuk Pelaksanaan Lancar:
< pra>
BUAT JADUAL momento_distribution
(
`id` INT(11) NOT NULL AUTO_INCREMENT, `momento_id` INT(11) NOT NULL, `momento_idmember` INT(11) NOT NULL, `created_at` DATETIME DEFAULT NULL, `updated_at` DATETIME DEFAULT NULL, `unread` TINYINT(1) DEFAULT '1', `accepted` VARCHAR(10) NOT NULL DEFAULT 'pending', `ext_member` VARCHAR(255) DEFAULT NULL, PRIMARY KEY (`momento_id`, `momento_idmember`), KEY `momento_distribution_FI_2` (`momento_idmember`), KEY `accepted` (`accepted`, `ext_member`)
)
ENGINE=InnoDB
KARSET LALAI=latin1;
Sebagai alternatif, jika anda sudah mempunyai lajur id dengan nilai , cuba ini:
UBAH JADUAL momento_distribution
TUKAR id COLUMN id INT(11) BUKAN NULL AUTO_INNCREMENT,
GUGURKAN KUNCI PRIMER,
TAMBAH KUNCI UTAMA (id);
Dengan pengubahsuaian ini, MySQL akan secara automatik memberikan nilai unik kepada kunci utama baharu, menyelesaikan isu penduaan. Struktur jadual anda akan dilaraskan dengan sewajarnya, melindungi data anda dan memastikan integriti pangkalan data anda.
Atas ialah kandungan terperinci Bagaimana untuk Menyelesaikan Ralat MySQL 1062: Entri Pendua '0' untuk Kunci 'PRIMER' Tanpa Kehilangan Data?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!