• 17-08-2013, 18:32:20
    #1
    PhpMyAdmin içinde 1 adet MySql database var.
    bunun içinde "urunler_en" diye bir tablo var içindekileri "urunler_tr" olan tabloya kopyalamak istiyorum.

    Her seferinde dışar aktar sonra _en yazan bütün yerleri _tr yapıp içe aktar yapıyorum.

    Bunun daha hızlı bir ve basit bir yöntemi yok mu?
  • 17-08-2013, 21:55:14
    #2
    merhaba

    olayı tam detaylı sormamışsınız..

    1) olarak.. aynı db içindeki a tablosunda b tablosuna mı ?
    2) olarak.. farklı db lerdeki tablolar arası veri transferi mi olcak ?
    3) aynı db veya farklı db içinde bile olsa .... a tablosunda b tablosuna veri aktarırken b tablosunda eski veriler ne olacak ?

    gibi 1 den fazla alternatif var ve ona göre de cevap var

    bunlar ile alakalı örnekleri google da aradım. farklı isteklere farklı cevaplar gördüm.

    http://www.electrictoolbox.com/phpmyadmin-copy-mysql-table/
    https://forums.totalchoicehosting.com/index.php?showtopic=9902
    http://stackoverflow.com/questions/12878513/importing-mysql-data-from-one-table-to-another
    http://www.edmondscommerce.co.uk/mysql/mysql-copy-table-from-one-database-to-another/
    http://stackoverflow.com/questions/13210429/phpmyadmin-duplicate-table
    http://www.youtube.com/watch?v=VCjJ1kWgBlg
    http://forums.hostgator.com/copying-table-database-phpmyadmin-t111806.html?
    yukardaki linklerdeki örnekler farklı amaçlara göre hizmet veren yapıları anlatıyor

    şahsi fikrime gelirsek..

    TRIGGER dediğimiz bir yapı yanılmıyorsam MySql in Ent. versiyonlarında var diye duymuştum.

    doğal olarak standart versiyonu kullandığınızı düşünerek tablolar arası ver update veya güncelleme işini fonksiyonlar-procedure lere bindirmek gerekiyor interface vasıtası ile.

    manuel bir veri transfer işlemine kendimin yapabileceği hataları düşündüğümde pek hoş bakmıyorum. bu sebeple de siz veri transfer işlemini manuel den bir storage/procedure koymanızda fayda var. veya bir istenilen yapıya veya zaman göre çalışabilecek cron ile aktif olan bir script de benzer iş yapabilir.
    haricinde.. interface in php olduğunu varsayarsak.. a tablosuna veri kaydı onayı alındıktan sonra b tablosuna da benzer güncellemeyi yapacak bir aktivasyon ile işlemi yaptırtmanız her zaman için faydalıdır.

    eğer derseniz. tablolar arası güncelleme her zaman değil, ben istedikçe güncellenmesi gerekiyor diyorsanız.. yine aynı kapıya gelmiş olacağız. bir coder arkadaşımıza sadece bu işlemi yapacak (admin) kişinin çalıştıracağı / istenilen veri transfer işlemini yaptırtacak bir ekran vasıtası ile tablolar arası veri transferi - update işlemini yaptırtabilirsiniz.

    unutmayınız ki....
    DB ve tablolar sürekli büyüyecektir. ister manuel ister script vasıtası ile sürekli tüm tabloyu kopyalamak hem zaman açısından hemde teknik sorun çıkma ihtimaline karşı işlemin yarıda kesilmesini varsayılarak sadece SON GÜNCELLENMİŞ VERİ nin aktarılmasını yapmakta fayda var. tabi bunu yapabilmek içinde bir milad oluşturmanız gerekiyor kendinize ve 2 tabloyu da kontrol edebileceğiniz log file lar ile de işlem aşamalarını takip edebilirsiniz

    sürekli export-import işlemi esnasında datafile larınızın şişeceğini... belirli aralıklarda DB bakımlarını ve file shrink işlemlerini yapmanız gerektiğini de unutmayın (shrink in mysql de olup olmadığını bilmiyorum o ayrı bir konu )
    kısacası datafile larınız gereksiz büyüme yapacağı için DB performansı data büyüme miktarına göre çok daha fazla performans kaybı olur.


    İşin daha da özü ve kısası.. db güncelleme işlemlerini database üzerinden yapmak yerine bir script vasıtası ile update olarak yaptırmanızda fayda var..

    başarılar
  • 18-08-2013, 13:04:50
    #3
    Kimlik doğrulama veya yönetimden onay bekliyor.
    Hocam teknik bilgi için çok teşekkür ederim.

    Öncelikle tek database içinde 2 tablo ve sadece 1 kere veri kopyalanacaktır.

    Ben databaseler hakkında çok teknik bilgi sahibi değilim. Hazır kurulum yaptığım bir script var ve bu scriptte hazırda gelen datalar _en tablosu içinde TR ye çevirince _tr tablosu içindeki verileri çekiyor. ve tablo boş olunca site boş görünüyor.

    Bende kurulum yapınca _en tablosundaki örnek verileri bir kereliğine _tr tablosuna geçen bir kod yada işlem istemiştim.

    Yukarıda vermiş olduğunuz bilgiler çok teknik bilgiler gibi görünüyor. Yinede yardımınız için teşekkür ederim. Daha kolay bir bilgi varsa yardımlarınızı bekliyorum
  • 18-08-2013, 19:09:25
    #4
    bence bir coder dan yardım almanız daha doğru olur
  • 18-08-2013, 21:43:20
    #5


    Hocam sizin verdiğiniz linklerden yola çıkarak biraz kurcaladım ve çok basit bir yöntemmiş herkez öğrensin istedim.

    1. Kopyalamak istediğiniz tablonun içine girin
    2. İşlemler menüsünü seçin
    3. Tabloyu şuna kopyalayın diye bir seçenek var. Ben burada sadece yeni tablo adı yazdım. (Dilerseniz DB isminide değiştirebilirsiniz.)
    4. Kopya olan tablomun da yapısı aynı olduğu için alt kısımdan Sadece Veri olanı seçtim.
    (Yeni bir tabloya kopya yapmak isteyen Yapı ve Veri seçeneğini işaretleyebilir.)
  • 28-08-2013, 17:20:30
    #6
    // Yeni tabloyu oluştur
    CREATE TABLE videos_yeni LIKE videos;

    // Verileri aktar
    INSERT videos_yeni SELECT * FROM videos;
  • 14-08-2020, 00:24:45
    #7
    Konuyu hortlatıyorum hocam demek istediğinizi çok iyi anladım

    Oluşturmak istediğiniz veritabanına tıklayın. daha sonra kopyalamak istediğiniz tabloyu seçin altta

    Buradaki alandan tabloyu ön ek ile kopyala deyin(Tam çözemedim ama) buradan buraya ikisinide tablomun adını yaptım değişik bir isimli tablo geldi onuda işlemlere giderek ismini değiştirdim. Arayan biri olur diye cevaplıyorum iyi günler