Merhaba,
Veritabanı olarak mysql kullanan yazılımların verilerini kendi kullandığımız veri tabanına almak istiyoruz.
Senaryo: Ama bir veri tabanı isim çakışması mevcut olduğundan dolayı bunu canias ta yapamadığınızı varsayalım.. Hayır hayır benim değil kuzenimin başına gelmiş (bkz: swf)
Gidilecek adımlar için;
- mysql query browser da schemata sekmesinde sağ tık create new schema diyip farklı bi db ismi ile veritabanını oluşturuyoruz.
- daha sonra verilerini almak istediğimiz (..test) database in backup ını alıyoruz
mysql adminstrator da sol üst yönetim sekmesinde görsel de gösterdiğim adımları izleyerek backup ınızı alıyorsunuz.
- 3.adımda ismini değiştirdiğimiz veri tabanına alınan backup ı restore ediyoruz.
Restore butonu ile görsel de adım adım gösterildiği şekli ile test ten aldığımız veriyi qlty te aktarıyoruz.
Şuan için manuel bir replike işlemini tamamlamış bulunuyoruz.
Şimdi ise sırada, asıl veri tabanına yapılan insert leri her defasında bizim backup-restore işlemini gerçekleştirmemize gerek kalmadan kendisinin stabil halde bunu yapabilmesini sağlamakta.
Çok fazla bir tablonuz yoksa trigger ile çok rahat bir şekilde bunu gerçekleştirebilirsiniz.
test üzerindeki tablolara yazacağımız trigger lar ile veri aktarımını şu şekilde yapabiliriz ;
use test;
/* makina verisi test db sinden qlty db sine aktarılır */
CREATE TRIGGER copyMakina BEFORE INSERT ON test.makina
FOR EACH ROW
INSERT INTO qlty.makina(Model,Aciklama,KayitZamani)
VALUES(NEW.Model,NEW.Aciklama,NEW.KayitZamani);
yukarıdaki scirpte benzer scriptler hazırlayarak aynı server içindeki bir database den diğerine trigger ile verileri atabiliriz.
Insert trigger ındaki yeni veriler NEW anahtar sözcüğü ile geliyor,buradaki verileri yakalayıp SET ile manipüle edip gömebilirsiniz.
Son olarak test teki makina tablosuna bir veri insert ediyoruz ve use qlty ile veritabanını değiştirip qlty deki makina tablosuna o verinin eklendiğini de görüyoruz.
faydası olması dileğiyle.. 🙂