Rumah >pangkalan data >tutorial mysql >Bagaimanakah Saya Boleh Menamakan Semula Pangkalan Data MySQL InnoDB dengan Cekap?

Bagaimanakah Saya Boleh Menamakan Semula Pangkalan Data MySQL InnoDB dengan Cekap?

Mary-Kate Olsen
Mary-Kate Olsenasal
2024-12-23 17:34:11398semak imbas

How Can I Efficiently Rename a MySQL InnoDB Database?

Menamakan semula Pangkalan Data MySQL: Penyelesaian Cekap untuk InnoDB

Menamakan semula pangkalan data MySQL boleh menjadi tugas yang sukar, terutamanya untuk pangkalan data yang besar dan yang menggunakan InnoDB, yang menyimpan data secara berbeza daripada MyISAM. Walau bagaimanapun, dengan pendekatan yang betul, ia boleh dilakukan dengan cekap.

Untuk menamakan semula pangkalan data InnoDB, kita perlu mencipta pangkalan data kosong baharu dan kemudian memindahkan setiap jadual secara individu ke dalamnya:

RENAME TABLE old_db.table TO new_db.table;

Penting untuk melaraskan kebenaran pangkalan data selepas pemindahan jadual.

Untuk skrip dalam shell, anda boleh menggunakan salah satu daripada yang berikut arahan:

mysql -u username -ppassword old_db -sNe 'show tables' | while read table; \
    do mysql -u username -ppassword -sNe "rename table old_db.$table to new_db.$table"; done

atau

for table in `mysql -u root -ppassword -s -N -e "use old_db;show tables from old_db;"`; do mysql -u root -ppassword -s -N -e "use old_db;rename table old_db.$table to new_db.$table;"; done;

Nota:

  • Jangan tinggalkan ruang antara pilihan -p dan kata laluan.
  • Jika pangkalan data tidak mempunyai kata laluan, alih keluar nama pengguna -u -ppassword bahagian.
  • Jika jadual mengandungi pencetus, ia tidak boleh dialihkan menggunakan kaedah di atas. Dalam kes sedemikian, gunakan teknik pengklonan pangkalan data tradisional: mysqldump old_db | mysql new_db.
  • Prosedur tersimpan boleh disalin selepas menamakan semula pangkalan data: mysqldump -R old_db | mysql new_db.

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Menamakan Semula Pangkalan Data MySQL InnoDB dengan Cekap?. 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