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.
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.
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 transaksi1) 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
(...
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.
KesimpulanAtas ialah kandungan terperinci pengubahsuaian jenis jadual mysql. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!