Mysql tablo kopyalama (Copy Table)

  • 0 replies
  • 2691 views

0 Üye ve 1 Ziyaretçi konuyu incelemekte.

*

Çevrimdışı D®agon

  • Her Şey Senin Rızan İçin Allah'ım.
  • *
  • 11502
  • +523/-0
  • Cinsiyet: Bay
    • bilyonmu
Mysql tablo kopyalama (Copy Table)
« : 26 Aralık 2010, 18:40:54 »



Bilindiği gibi mysql de yedek (backup) alma gibi işlemler için sık sık tablonun komple aynasını (miror) alma ihtiyacı duyarız. Bunu en hızlı şekilde yapmanın yolunu anlatmaya çalışacağım bu makalemde sizlere. Mysql diger veritabanlarına göre altyapısı hızı ve ücretsiz olması nedeniyle günümüzde birçok sitenin altyapısında kullanılma sebebi haline gelmiştir.

ilk olarak tablo yapısınız (strutucture) ve verileri(data) full olarak baska tabloya kopyalamayi gorecegiz. Mevcut tablomuzun ismi uyanangenclikcom olsun.

CREATE TABLE hedeftablo SELECT * FROM uyanangenclikcom

Bu şekilde kopyalama işlemi sonucunda hedeftablo ismi ile yeni bir tablo oluşturularak uyanangenclikcom tablosundaki yapı ve veri ile dolduruldu.

 

uyanangenclikcom tablosu:

id site class online
1 uyanangenclik.com Four 75
2 uyanangenclik.com
Three 85
3 images.us Three 55
4 uyanangenclik.info
Four 60
5 uyanangenclik.com Four 60

Şimdide bunu sql cümleciği içinde değişilik yaparak yeniden sadece belirli kayıtların kopyalanmasını sağlıyacağız.Sadece  class = Four olan kayıtları kopyalamak için kullanmamız gereken sql cümleciği aşağıdaki gibi olmalı.

CREATE TABLE hedeftablo SELECT * FROM uyanangenclikcom WHERE class='Four'


hedeftablo nun yapısı ve içeriği şu şekilde olacaktır:

id site class online
1 uyanangenclik.com Four 75
4 uyanangenclik.info Four 60
5 uyanangenclikcom Four 60

 

Sadece yapıyı kopyalama

Eğer istersek dataları almadan sadece tablo yapısınıda kopyaloyabiliriz.

create table hedeftablo like uyanangenclikcom;

Bu komutun ardından uyanangenclikcom tablosunun yapısı ile aynı yapıda hedeftabo oluşacaktır.

Eğer tablo zaten mevcutsa

Yedek alma denemelerinizde tablo zaten mevcut şeklinde hatalar alabilirsiniz. Bu durumda IF NOT EXISTS komutu size yardımcı olacaktır.

CREATE TABLE IF NOT EXISTS hedeftablo SELECT * FROM ahmbaycom WHERE class='Four';

Yukarıdaki cümlecik Eğer hedeftablo yoksa ahmbaycom tabosundaki class=Four olan kayıtları hefeftablo ya kopyalıyacaktır.


Eğer tablo varsa sil (DROP TABLE IF EXISTS)

Tabi bu kopyalama işlemini cron job ile düzenli olarak almanız durumunda tablo olduğu için üzerine yazılamayacak yada çok fazla sayıda tablo olacaktır. Bunu aşmak içinde eğer tablo hedeftablo mevcutsa önce onu kaldırarak sonra kopyalama işlemlerini yapabiliriz.

DROP TABLE IF EXISTS `uyanangenclikcom`;


 

Bunlarda İlginizi Çekebilir

  Konu / Başlatan replies Son İleti
3 replies
1782 views
Son İleti 02 Mart 2009, 16:20:26
Gönderen: Nadya
0 replies
1613 views
Son İleti 14 Aralık 2010, 11:23:22
Gönderen: zeron
0 replies
1793 views
Son İleti 14 Aralık 2010, 11:24:19
Gönderen: zeron
0 replies
1720 views
Son İleti 14 Aralık 2010, 12:10:50
Gönderen: zeron
0 replies
3531 views
Son İleti 16 Aralık 2010, 04:07:17
Gönderen: gece_mavisi
0 replies
2724 views
Son İleti 01 Ocak 2011, 08:25:06
Gönderen: Leb-i Damla
0 replies
3111 views
Son İleti 14 Ocak 2011, 19:29:13
Gönderen: D®agon
0 replies
2488 views
Son İleti 14 Ocak 2011, 23:09:33
Gönderen: D®agon
0 replies
1220 views
Son İleti 24 Kasım 2013, 18:45:08
Gönderen: D®agon
0 replies
1279 views
Son İleti 31 Ocak 2014, 20:24:11
Gönderen: D®agon