2012-04-08 21 views
9

Temel olarak, 'jmla_' önekine sahip bir sürü tablo içeren MySQL'de bir joomla veritabanı var. 'Jmla_' önekini 'jos_' öneki ile değiştirerek tüm bu tabloları yeniden adlandırmak istiyorum. Bunu basit bir SQL komut dosyası veya SQL sorgusuyla nasıl yapacağınız hakkında herhangi bir fikir var mı? dosyayı .Sql için phpmyadmin kullanarakMySQL'de, bir veritabanındaki tabloları nasıl yeniden adlandırabilirim?

cevap

2
  1. İhracat
  2. kullanın herhangi bir metin editörü (I vim tercih büyük dosyalar üzerinde mükemmel çalışır) fonksiyonu ile "bul ve değiştir" Do dosyayı
  3. açmak için "bul ve değiştir" , gerçek önekinizi bulma kutusuna yerleştirme ve kutuda değiştir
  4. Dosyayı phpmyadmin kullanarak içe aktar.

Eski veritabanını phpmyadmin'e aktarmadan önce göndermeyi unutmayın. Bu, ihracat sırasında uygun seçeneklerin kontrol edilmesiyle yapılabilir.

+0

Ve ne elde edebileceğimiz satır isimlerden biri İçinde "jmla_" varsa olur? Ya da daha da kötüsü, veriler oralarda bir yere sahipse? –

+0

1. Bu davayı uygulamada hiç görmedim. 2. Çözümüm, varolan bir veritabanına, değişen bir noktaya başka iyi bir şey yaptı. –

+0

Önemli olan, orada daha iyi bir çözüm olduğunda, basit bir bulma ve değiştirme riskine değmez. Çözüm, gelecekte hata ayıklaması zor olan sorunlara yol açabilir. –

7

çalıştırın bu açıklama:

SELECT 'rename table '||table_name||' to '||'jos'||substr(table_name,5)||';' 
FROM information_schema.tables 
WHERE table_name like 'jmla%' 

Bu, tüm tabloları yeniden adlandırır bir komut dosyası oluşturur. Sadece çıktıyı & kopyalayın, SQL istemcinize yapıştırın.

+4

Ayrıca, bunu uygulamak istediğiniz veritabanını da filtrelediğinizden emin olun, aksi takdirde bu, sahip olabileceğiniz diğer Joomla yüklemeleri de dahil olmak üzere tüm veritabanlarında RENAME sorguları üretecektir: 'AND TABLE_SCHEMA = 'your_joomla_db' – Fanis

8
SELECT concat ('rename table ',table_name,' to ',table_name,'_old;') 
FROM information_schema.tables 
WHERE table_name like 'webform%' 
    and table_schema='weiss_db_new' 

çalışacaktır (Sen ANSI modunda çalışmayan durumda MySQL'in standart dışı birleştirme operatöre || değiştirmeniz gerekecektir).

0

Joomla! Için Akeeba Yönetici Araçları Bileşenini kullanmayı düşündünüz mü? ve sonra tablo öneklerini değiştirmek için Veritabanı Öneki Düzenleyicisi'ni kullanarak, gerçekten iyi çalışıyor. Joomla! Nızı güvenceye almak için Akeeba Admin araçları kullanılabilir. Kurulum

Akeeba here

İlgili konular