Rumah  >  Artikel  >  pangkalan data  >  Takrif jadual yang salah; hanya terdapat satu lajur auto dan ia mesti ditakrifkan sebagai kunci - Cara menyelesaikan ralat MySQL: Takrif jadual yang salah hanya boleh ada satu lajur automatik dan ia mesti ditakrifkan sebagai kunci

Takrif jadual yang salah; hanya terdapat satu lajur auto dan ia mesti ditakrifkan sebagai kunci - Cara menyelesaikan ralat MySQL: Takrif jadual yang salah hanya boleh ada satu lajur automatik dan ia mesti ditakrifkan sebagai kunci

WBOY
WBOYasal
2023-10-05 11:05:152662semak imbas

Incorrect table definition; there can be only one auto column and it must be defined as a key - 如何解决MySQL报错:错误的表定义;只能有一个自动列,并且必须定义为键

Cara menyelesaikan ralat MySQL: takrif jadual yang salah hanya boleh ada satu lajur automatik dan mesti ditakrifkan sebagai kunci, contoh kod khusus diperlukan

Dalam beberapa tahun kebelakangan ini, pangkalan data MySQL telah digunakan secara meluas, tetapi semasa penggunaan, kami sering menghadapi pelbagai laporan ralat. Antaranya, ralat biasa ialah "takrif jadual yang salah; hanya boleh ada satu lajur automatik dan ia mesti ditakrifkan sebagai kunci". Ralat ini biasanya berlaku apabila kami membuat jadual, yang mungkin menyakitkan kepala untuk pemula. Artikel ini akan memberi anda analisis terperinci tentang sebab ralat ini dan memberikan contoh kod khusus untuk menyelesaikan masalah.

Pertama, mari kita fahami sebab ralat ini. Pangkalan data MySQL memerlukan hanya satu lajur kenaikan automatik dalam jadual, dan lajur ini mesti menjadi kunci utama jadual. Jika kita melanggar peraturan ini semasa penciptaan jadual, kita akan mendapat ralat di atas. Seterusnya, kami akan menunjukkan cara untuk menyelesaikan masalah ini dalam bentuk contoh kod.

Sebagai contoh, kami mencipta jadual bernama Pelajar untuk menyimpan maklumat pelajar. Kami ingin memberikan nombor pelajar yang unik kepada setiap pelajar dan menggunakan nombor pelajar sebagai kunci utama. Berikut ialah contoh takrif jadual yang salah:

CREATE TABLE Students (
    id INT AUTO_INCREMENT,
    name VARCHAR(50),
    PRIMARY KEY (name)
);

Dalam contoh di atas, kami mencipta id lajur peningkatan automatik, tetapi menentukan lajur nama sebagai kunci utama. Ini salah kerana kami melanggar peraturan MySQL.

Untuk menyelesaikan masalah ini, kita perlu menentukan lajur id sebagai kunci utama. Berikut ialah contoh takrifan jadual betul yang diubah suai:

CREATE TABLE Students (
    id INT AUTO_INCREMENT PRIMARY KEY,
    name VARCHAR(50)
);

Dalam contoh di atas, kami mentakrifkan lajur id sebagai kunci utama auto-increment, memastikan hanya terdapat satu lajur auto dan ia mestilah kunci utama.

Selain mengubah suai definisi jadual, kita juga boleh menggunakan pernyataan ALTER TABLE untuk mengubah suai jadual sedia ada. Berikut ialah contoh penggunaan pernyataan ALTER TABLE untuk membetulkan ralat di atas:

CREATE TABLE Students (
    id INT AUTO_INCREMENT,
    name VARCHAR(50)
);

ALTER TABLE Students
MODIFY COLUMN id INT AUTO_INCREMENT PRIMARY KEY;

Dalam contoh di atas, kami mula-mula mencipta jadual Pelajar dan menentukan struktur jadual yang salah. Kemudian, gunakan pernyataan ALTER TABLE untuk mengubah suai takrifan lajur id dan tetapkannya sebagai kunci utama yang berkembang secara automatik.

Untuk meringkaskan, untuk menyelesaikan ralat MySQL "Takrif jadual yang salah; hanya boleh ada satu lajur automatik dan ia mesti ditakrifkan sebagai kunci", kita perlu menjelaskan perkara berikut:

  1. Hanya ada satu auto- meningkatkan lajur dalam jadual.
  2. Lajur yang meningkat secara automatik mestilah kunci utama.
  3. Apabila membuat jadual, takrifkan lajur yang meningkat secara automatik sebagai kunci utama.
  4. Dalam jadual sedia ada, anda boleh menggunakan pernyataan ALTER TABLE untuk mengubah suai definisi lajur.

Bagi pemula, mungkin sukar untuk memahami dan menyelesaikan ralat ini, saya harap analisis dan contoh kod dalam artikel ini dapat membantu anda lebih memahami dan menyelesaikan masalah ini. Apabila bekerja dengan pangkalan data MySQL, mengendalikan ralat dengan segera dan mempelajari cara menyelesaikan masalah adalah langkah penting untuk menjadi pembangun yang baik.

Atas ialah kandungan terperinci Takrif jadual yang salah; hanya terdapat satu lajur auto dan ia mesti ditakrifkan sebagai kunci - Cara menyelesaikan ralat MySQL: Takrif jadual yang salah hanya boleh ada satu lajur automatik dan ia mesti ditakrifkan sebagai kunci. 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