Rumah  >  Artikel  >  pangkalan data  >  Tidak dapat mencipta 'table_name' (errno: 139) - Cara menyelesaikan ralat MySQL: Tidak dapat mencipta jadual, nombor ralat: 139

Tidak dapat mencipta 'table_name' (errno: 139) - Cara menyelesaikan ralat MySQL: Tidak dapat mencipta jadual, nombor ralat: 139

PHPz
PHPzasal
2023-10-05 08:58:441413semak imbas

Can't create table 'table_name' (errno: 139) - 如何解决MySQL报错:无法创建表,错误编号:139

Tidak boleh membuat jadual 'nama_jadual' (errno: 139) - Cara menyelesaikan ralat MySQL: Tidak dapat mencipta jadual, nombor ralat: 139, contoh kod khusus diperlukan

Apabila membangunkan pangkalan data, kita sering menghadapi mencipta jadual keperluan. Walau bagaimanapun, kadangkala anda mungkin menghadapi ralat semasa membuat jadual dalam MySQL, salah satunya ialah ralat nombor 139. Artikel ini menerangkan cara menyelesaikan masalah ini dan menyediakan contoh kod khusus.

Pertama, mari kita fahami maksud ralat ini. Apabila MySQL gagal mencipta jadual, ia mengembalikan nombor ralat, di mana 139 bermaksud "Medan dalam definisi jadual mempunyai panjang atau ketepatan yang tidak sah." Dalam erti kata lain, panjang atau bilangan digit selepas titik perpuluhan medan dalam jadual yang anda buat tidak memenuhi keperluan.

Jadi bagaimana untuk menyelesaikan masalah ini? Berikut ialah beberapa penyelesaian:

  1. Semak jenis medan dan panjang dalam definisi jadual
    Mula-mula, anda perlu menyemak jenis medan dan panjang yang anda tentukan semasa mencipta jadual. Sebagai contoh, jika anda mencipta jadual bernama "table_name" dan menentukan medan jenis rentetan dengan panjang 10 semasa menentukan medan, anda perlu mengesahkan bahawa panjang medan anda adalah betul. Pastikan panjang medan anda tidak melebihi had untuk jenis medan yang sepadan.

    Berikut ialah contoh kod:

    CREATE TABLE `table_name` (
      `id` INT(11) NOT NULL AUTO_INCREMENT,
      `name` VARCHAR(10),
      PRIMARY KEY (`id`)
    ) ENGINE=InnoDB DEFAULT CHARSET=utf8;
  2. Menyemak ketepatan medan
    Satu lagi kemungkinan punca ralat 139 ialah ketepatan medan tidak betul. Jika anda mentakrifkan medan jenis PERPULUHAN apabila anda mencipta jadual dan nyatakan bilangan digit selepas titik perpuluhan (contohnya, PERPULUHAN(10, 2)), pastikan nilai sebenar medan anda tidak mempunyai lebih banyak digit selepas titik perpuluhan daripada yang anda takrifkan dalam jadual bilangan digit yang dinyatakan dalam .

    Berikut ialah contoh kod:

    CREATE TABLE `table_name` (
      `id` INT(11) NOT NULL AUTO_INCREMENT,
      `price` DECIMAL(10, 2),
      PRIMARY KEY (`id`)
    ) ENGINE=InnoDB DEFAULT CHARSET=utf8;
  3. Semak versi MySQL
    Selain itu, anda perlu memastikan bahawa versi MySQL yang anda gunakan menyokong jenis medan dan panjang yang anda gunakan semasa membuat jadual. Sesetengah jenis medan dan panjang mungkin mempunyai sekatan yang berbeza dalam versi MySQL yang berbeza. Jika anda mendapati definisi jadual anda boleh dibuat dengan jayanya dalam satu versi MySQL, tetapi ralat 139 dilaporkan dalam versi lain, ini mungkin kerana versi MySQL yang anda gunakan tidak menyokong jenis medan atau panjang.

Akhir sekali, jika anda menghadapi masalah yang tidak dapat diselesaikan, anda boleh menyemak dokumentasi rasmi MySQL atau meminta bantuan komuniti MySQL. Ada kemungkinan mereka mempunyai penjelasan dan penyelesaian yang lebih mendalam untuk masalah ini.

Untuk meringkaskan, apabila anda menghadapi ralat nombor 139 semasa membuat jadual dalam MySQL, anda perlu menyemak dengan teliti jenis medan, panjang dan ketepatan dalam definisi jadual untuk memastikan ia mematuhi spesifikasi. Jika masalah berterusan, anda boleh mempertimbangkan untuk menyemak sama ada versi MySQL yang anda gunakan menyokong jenis medan dan panjang yang anda tetapkan. Saya harap artikel ini dapat membantu anda menyelesaikan ralat MySQL 139 dan menyediakan contoh kod yang berkaitan.

Atas ialah kandungan terperinci Tidak dapat mencipta 'table_name' (errno: 139) - Cara menyelesaikan ralat MySQL: Tidak dapat mencipta jadual, nombor ralat: 139. 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