Baru-baru ini saya terpaksa berurusan dengan beberapa batasan penyedia pangkalan data saya yang tidak menyokong penamaan semula jadual. Jadi saya terpaksa menduplikasi jadual secara manual.
Pangkalan data platform SaaS saya dihoskan pada Planetscale. Syarikat itu menyediakan pangkalan data tanpa pelayan yang serasi dengan MySQL. Terima kasih kepada sifat tanpa pelayannya, anda boleh mendapatkan kuasa sharding mendatar, perubahan skema tanpa sekatan, dan banyak lagi ciri pangkalan data yang berkuasa tanpa perlu bersusah payah melaksanakannya. Dan pengalaman pembangun yang hebat.
Dari perspektif lain, anda perlu menangani beberapa kekangan mengenai perubahan skema. Had ini diperlukan untuk menjamin konsistensi dalam persekitaran yang berpecah-belah.
Mereka membuat banyak kemajuan sejak saya menjadi pelanggan (hampir dua tahun lalu), seperti sokongan untuk kekangan Foreign Key: https://planetscale.com/docs/concepts/foreign-key-constraints
Inspektor ialah aplikasi Laravel. Menggunakan migrasi Laravel saya boleh menggunakan fungsi nama semula untuk menukar nama jadual:
Schema::rename('from', 'to');
Planetscale tidak menyokong penamaan semula jadual secara asli. Jadi saya terpaksa mencari penyelesaian untuk menyelesaikan tugas itu.
Sejujurnya, menamakan semula jadual adalah operasi yang agak jarang berlaku. Bagi saya ia adalah kerana pertindihan nama antara entiti "Projek" dan "Aplikasi". Saya terpaksa menamakan semula Projek -> Aplikasi.
Terdapat dua cara untuk menduplikasi jadual dalam MySQL.
Anda boleh menduplikasi hanya struktur jadual (lajur, kunci, indeks, dll) tanpa data, menggunakan CREATE TABLE … SEPERTI:
CREATE TABLE applications LIKE projects;
Hasilnya ialah penciptaan jadual aplikasi dengan struktur yang sama persis dengan jadual projek asal, tetapi TANPA data.
Untuk mengimport data juga anda boleh menjalankan pernyataan kedua sebagai INSERT INTO … PILIH:
INSERT INTO applications SELECT * FROM projects;
Berhati-hati menjalankan penyata ini di atas meja besar kerana ia boleh mengambil banyak masa dan sumber pelayan.
Pilihan kedua ialah untuk menduplikasi definisi lajur sahaja dan mengimport data dalam satu pernyataan menggunakan CREATE JADUAL … SEBAGAI PILIH:
CREATE TABLE applications AS SELECT * FROM projects;
Jadual aplikasi baharu hanya mewarisi takrifan lajur asas daripada jadual projek. Ia tidak menduplikasi kekangan, indeks dan takrifan auto_kenaikan Kunci Asing.
Pilihan ini mungkin berguna apabila anda mempunyai nama indeks dan kunci yang berkaitan dengan nama jadual. Menukar nama jadual anda perlu menggantikan nama kekangan. Anda lebih baik tidak mengimportnya sama sekali dan melakukannya sekali lagi.
Pangkalan data sentiasa menjadi topik hangat untuk pembangun di mana-mana peringkat. Anda boleh mencari sumber teknikal lain di blog. Berikut ialah artikel paling popular mengenai topik:
Inspektor ialah alat Pemantauan Pelaksanaan Kod yang direka khusus untuk pembangun perisian. Anda tidak perlu memasang apa-apa di peringkat pelayan, cuma pasang pakej komposer dan anda sudah bersedia untuk pergi.
Tidak seperti platform lain yang kompleks, semua-dalam-satu, Inspektor sangat mudah dan mesra PHP. Anda boleh mencuba pakej Laravel atau Symfony kami.
Jika anda mencari automasi yang berkesan, cerapan mendalam dan keupayaan untuk memajukan makluman dan pemberitahuan ke dalam persekitaran pemesejan anda cuba Inspektor secara percuma. Daftar akaun anda.
Atau ketahui lebih lanjut di tapak web: https://inspector.dev
Atas ialah kandungan terperinci MySQL Cara Mendua Jadual – Petua Pantas. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!