Rumah >pangkalan data >tutorial mysql >pengubahsuaian jenis jadual mysql

pengubahsuaian jenis jadual mysql

WBOY
WBOYasal
2023-05-23 14:03:131645semak imbas

MySQL ialah sistem pengurusan pangkalan data hubungan sumber terbuka. Ia menyediakan pelbagai jenis meja untuk memenuhi keperluan yang berbeza. Dalam aplikasi praktikal, kadangkala perlu mengubah suai jenis jadual. Artikel ini akan memperkenalkan cara mengubah suai jenis jadual MySQL.

  1. Gambaran Keseluruhan

Jenis jadual MySQL terbahagi terutamanya kepada InnoDB, MyISAM, MEMORY, CSV dan jenis lain. InnoDB ialah enjin storan lalai MySQL. Setiap enjin storan mempunyai kelebihan dan kekurangannya, dan ia perlu dipilih mengikut keperluan sebenar dalam aplikasi sebenar.

Dalam MySQL, mengubah suai jenis data jadual biasanya dibahagikan kepada dua situasi:

1) Mengubah suai daripada jadual bukan transaksi (seperti MyISAM) kepada jadual transaksi (seperti InnoDB);

2) Ubah suai daripada jadual transaksi (seperti InnoDB) kepada jadual bukan transaksi (seperti MyISAM).

Kaedah pengubahsuaian dalam kedua-dua situasi adalah sedikit berbeza, yang akan diperkenalkan secara terperinci di bawah.

  1. Ubah suai daripada jadual bukan transaksi kepada jadual transaksi

Mengubah suai jadual bukan transaksi kepada jadual transaksi ialah operasi yang agak biasa. Berikut menerangkan cara mengubah suai jadual MyISAM kepada jadual InnoDB.

1) Lihat jenis jadual semasa

Anda boleh menggunakan pernyataan DESCRIBE untuk melihat maklumat asas jadual, seperti maklumat medan jadual, maklumat indeks, dsb. Laksanakan arahan berikut:

DESCRIBE tablename;

di mana tablename ialah nama jadual yang hendak disoal.

2) Sandarkan data

Sebelum mengubah suai jenis jadual, anda perlu menyandarkan data dalam jadual. Anda boleh menggunakan perintah mysqldump untuk menyandarkan data dalam jadual kepada fail. Contohnya, untuk menyandarkan jadual test_table dalam pustaka testDB ke fail test_table.sql, anda boleh melaksanakan perintah berikut:

mysqldump testDB test_table > jadual

Jadual perlu dikunci sebelum mengubah suai jenisnya. Dalam MySQL, kunci tulis diperlukan untuk melaksanakan pernyataan ALTER TABLE. Oleh itu, sebelum melaksanakan pernyataan ALTER TABLE, anda perlu mengunci jadual untuk menghalang pengguna lain daripada mengubah suai jadual.

Anda boleh mengunci jadual melalui arahan berikut:

LOCK TABLES tablename WRITE;

di mana tablename ialah nama jadual yang akan diubah suai.

4) Ubah suai jenis jadual

Jalankan arahan berikut untuk mengubah suai jenis jadual daripada MyISAM kepada InnoDB:

ALTER TABLE tablename ENGINE=InnoDB;

Antaranya, tablename ialah nama jadual yang akan diubah suai.

5) Buka kunci jadual

Selepas pengubahsuaian selesai, anda perlu membuka kunci jadual. Jalankan arahan berikut:

BUKA KUNCI JADUAL;

Pada ketika ini, jadual MyISAM berjaya diubah suai menjadi jadual InnoDB.

Pengubahsuaian daripada jadual transaksi kepada jadual bukan transaksi
  1. Dalam aplikasi sebenar, pengubahsuaian daripada jadual transaksi kepada jadual bukan transaksi agak jarang berlaku. Berikut menerangkan cara mengubah suai jadual InnoDB kepada jadual MyISAM.

1) Sandarkan data

Sebelum mengubah suai jenis jadual, anda juga perlu menyandarkan data dalam jadual. Kaedah sandaran adalah sama seperti sebelumnya dan tidak akan diulang di sini.

2) Cipta jadual baharu

Oleh kerana kaedah penyimpanan kedua-dua jenis jadual adalah berbeza, jadual InnoDB tidak boleh diubah suai menjadi jadual MyISAM dengan mengubah suai jadual secara langsung. Oleh itu, anda perlu mencipta jadual MyISAM baharu terlebih dahulu dan mengimport data ke dalam jadual.

Anda boleh mencipta jadual MyISAM baharu dengan arahan berikut:

CREATE TABLE new_table

(

...

) ENGINE=MyISAM;

di mana , new_table ialah nama jadual yang akan dibuat, ... ialah maklumat medan dan maklumat kekangan dalam jadual baharu.

3) Import data ke dalam jadual baharu

Anda boleh menggunakan pernyataan INSERT INTO untuk memasukkan data daripada jadual asal ke dalam jadual baharu. Contohnya, untuk memasukkan data daripada jadual test_table ke dalam jadual new_table, anda boleh laksanakan arahan berikut:

INSERT INTO new_table SELECT * FROM test_table;

4) Namakan semula jadual

Selepas import data selesai, jadual baharu perlu dinamakan semula kepada jadual asal. Anda boleh melaksanakan arahan berikut:

NAMA SEMULA TABLE test_table KE old_table, new_table TO test_table;

di mana old_table ialah nama jadual lama dan test_table ialah nama jadual baharu.

Pada ketika ini, jadual InnoDB telah berjaya diubah suai menjadi jadual MyISAM.

Kesimpulan
  1. Mengubah suai jenis jadual MySQL ialah operasi yang agak biasa. Dalam aplikasi sebenar, jenis jadual yang berbeza perlu dipilih mengikut keperluan sebenar. Sama ada ia diubah suai daripada jadual bukan transaksi kepada jadual transaksi atau daripada jadual transaksi kepada jadual bukan transaksi, penguncian jadual dan sandaran data diperlukan. Artikel ini memperkenalkan kaedah asas untuk mengubah suai jenis jadual MySQL, dan berharap dapat membantu pembaca.

Atas ialah kandungan terperinci pengubahsuaian jenis jadual 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