Sağlayıcım siteme Drupal CMS'ye kuruldu. Şimdi tüm verilerimi eski siteden kopyalamam gerekiyor. Eski DB'imde önek içermeyen tablolar var, ancak yeni DB'de tüm tablolarda dp_[table_name]
öneki var.MySQL DB'mdeki tüm tablolardaki önekleri nasıl değiştirebilirim?
cevap
zerkms çözüm benim için çalışmadı. Tables
tablosunu sorgulamak için information_schema
veritabanını belirtmek zorunda kaldım.
SELECT
CONCAT('RENAME TABLE ', GROUP_CONCAT('`', TABLE_SCHEMA, '`.`', TABLE_NAME, '` TO `', TABLE_SCHEMA, '`.`prefix_', TABLE_NAME, '`')) AS q
FROM
`information_schema`.`Tables` WHERE TABLE_SCHEMA='test';
Düzenleme:
sadece çağrı RENAME TABLO sorgu kez optimize edilmiştir. İçine girdiğim bir şey, birleştirilmiş çıktının 341 karakterde kısaltılmış olmasıydı. Bu daha yüksek bir değere MySQL değişkeni group_concat_max_len
ayarlayarak (sunucunuza izin veriyorsa) çözülebilir:
SET group_concat_max_len = 3072; -- UTF8 assumes each character will take 3 bytes, so 3072/3 = 1024 characters.
her tablo için RENAME TABLE çalışacak bir senaryo yazmak. "Test" bundan sonra veritabanı adını
bekleniyor
SELECT
GROUP_CONCAT('RENAME TABLE `', TABLE_SCHEMA, '`.`', TABLE_NAME, '` TO `', TABLE_SCHEMA, '`.`prefix_', TABLE_NAME, '`;' SEPARATOR ' ')
FROM
`TABLES` WHERE `TABLE_SCHEMA` = "test";
yapabilirsiniz sen, o
Sadece veritabanı dökümü olabilir ;-) yürütmek dökümü açarsanız önekleri katacak uzun sorgu Bir metin editörü ile "CREATE TABLE" ifadesinin tüm oluşumlarını "CREATE TABLE dp_" ile değiştirin ve veritabanını geri yükleyin. Yapılması birkaç dakika sürer.
gigabayt ;-) – zerkms
ben varım çift daha azdır. (Benim durumumda, Kireç olarak) bir e-tablonun A sütunundaki içerikleri kopyalamanız, masa listesindeki tüm tabloları seçin (örneğin, SQL Workbench'i) bir sorgu aracını kullanın GB'tan daha büyük veritabanları için :) ve aşağıdaki koymak ! B sütunundaki formülü: = "tablosunu yeniden adlandırmak" & A1 & "dp_ için" & A1 & "; "her diğer B sütunu hücreye hücre B1 den formülü yapıştırın ve yeniden adlandırma komut B sütunundaki görünür –
benim cevap söylediği gibi - adlandırmak için uygun bir yol rENAME TABLE (+ tabloları isimleri almak için information_shema) – zerkms
PhpMyAdmin Bunu şimdi yapmak için izin verir. "Veritabanı" düzeyinde tüm tabloları görmek için Yapı sekmesini seçin. 'Tümünü denetle'yi tıklayın (tablo listesinin altında). 'Seçili' açılır menüsünde şunları seçin: 'Tablo önekini değiştir'. veritabanına kadar
- 1. Veritabanıdaki tüm tablolardaki alanların toplam sayısı
- 2. Nasıl MySQL Tetikleyicileri değiştirebilirim DEFINER
- 3. CSS önekleri?
- 4. Uyum Metinle çalışmak için tüm tablolardaki tüm dizeleri değiştirin
- 5. Farklı tablolardaki toplamların toplamı
- 6. html2js önişlemci çoklu önekleri sıyırma
- 7. SQL: Görünümler hariç tüm tablolardaki sütunların sayısını sayın
- 8. Belirli karakterlerin tüm oluşumlarını nasıl değiştirebilirim?
- 9. Pandalar: Bir sütunun tüm değerlerini nasıl değiştirebilirim?
- 10. Xcode'ta Uygulama Kimliği Önekleri nasıl/nerede tanımlanır?
- 11. ggplot2 eksen etiketlerindeki SI önekleri
- 12. Bir aramada mysql tablosundaki her alandaki durumu nasıl değiştirebilirim?
- 13. JPA (Hazırda Beklet) ve özel tablo önekleri
- 14. Kullanıcıyı nasıl değiştirebilirim? (Cmd, mariadb)
- 15. Başvurumun dilini nasıl değiştirebilirim?
- 16. Veritabanımda çalışan tüm MySQL olaylarını nasıl görebilirim?
- 17. MySQL veritabanındaki tüm tablolar nasıl silinir?
- 18. mysql ile tüm ürünlerin nasıl görüntüleneceğini gösterir
- 19. kovandaki karakterleri nasıl değiştirebilirim?
- 20. JQuery kullanarak tüm giriş değerlerini büyük harf olarak nasıl değiştirebilirim?
- 21. Flask'ı kullanarak, TÜM çıktı için Önbellek denetimi üstbilgisini nasıl değiştirebilirim?
- 22. Android uygulamasında tüm etkinlik geçişlerini aynı anda nasıl değiştirebilirim?
- 23. MySQL
- 24. Tüm tabloları info_schema'dan alın, MySQL
- 25. Nasıl Nasıl değiştirebilirim CodeIgniter'da
- 26. XAMPP'de MariaDB'yi MySQL'e nasıl değiştirebilirim? İlk
- 27. Tüm tabloyu güncelleştirirken MySQL kilitlenme
- 28. Mysql içinde tüm DOM'ı kaydet
- 29. mysql, tüm satırların toplamını sayıyor
- 30. MySQL - seçme kimlikleri Tüm etiketleri
Doğru, bu Joomla kullanarak localhost XAMPP üzerinde çalışıyordu ve otomatik Joomla önekini değiştirmek istedim çünkü bu benim için çalıştı. Adımlarınızı takip ediyorum - yaptığınız gibi 'information_schema'.'Table'ları belirtmek zorundaydım ve SET_concat_max_len = 10240; Benim durumumda pek çok tablo vardı. ('Backup_db İÇİN. ' 'TABLO ADINI' tablo_ismi, tablo_ismi';') 'SEÇ CONCAT INFORMATION_SCHEMA GELEN: 1 – MJoraid
Bir sayı daha, sen gibi (backup_db diyelim) veritabanları arasında tablo taşımak için aynı komutunu kullanabilirsiniz. TABLOLAR NEREDE TABLE_SCHEMA = 'testbot'; ' – sactiw
harika nokta' group_concat_max_len' değişken hakkında düzenleme! Ben tam cümle elde etmedim, harika çalıştı! – AlexGH