Anketler Fotoğraflar [Yeni!] Para Kazanın Reklam ücretleri Görüş Bildirin WebMaster Araçları SMS / Fıkra Arşivi
Yazılar (Blog) Programlar Projeler Servisler
AnaSayfa En Ben Kimim Bölümler Çalışmalarım iletişim

Mysql tablo kopyalama (Copy Table) []

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 ahmbaycom olsun.

CREATE TABLE hedeftablo SELECT * FROM ahmbaycom

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

 

ahmbaycom tablosu:

id site class online
1 ahmbay.com Four 75
2 wmaraclari.com
Three 85
3 domat.us Three 55
4 ahmbay.info
Four 60
5 malmiyimneyim.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 ahmbaycom WHERE class='Four'


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

id site class online
1 ahmbay.com Four 75
4 ahmbay.info Four 60
5 malmiyimneyim.com Four 60

 

Sadece yapıyı kopyalama

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

create table hedeftablo like ahmbaycom;

Bu komutun ardından ahmbaycom 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 `ahmbaycom`;

Yazan: Admin | Güncelleme: 25.07.2010

Değerlendir

Bu Metaryel için Yapılmış Yorumlar (1)


  mehmet ketenci [havay..] {20 Ocak 2018 Cumartesi 18:01:54}

bu php nin içine böyle yazılıyor. if (!$con = new mysqli($host, $user, $pwd, $db)) { die('An error occurred while connecting to the MySQL server!

' . $con->connect_error); } // Create an array of MySQL queries to run $sql = array( 'DROP TABLE IF EXISTS nane.nane7;', 'create table nane.nane7 like nane.nane1', 'INSERT INTO nane.nane7 SELECT * FROM nane.nane1 WHERE a4=5' );

Yorumunuzu Ekleyin

isim Zorunlu Alan! 
Mail Zorunlu Alan! 
Yorumunuz Zorunlu Alan! 
Max Karekter.
Resim Onayı Zorunlu Alan! 
Kategoriler
. : : Anket : : .
nezaman öleceğinizi bilmek istermiydiniz?




 
Porjeler: Ziyaretçi Defteri
Sayaç
sms

Sayfa Üretimi:0.806 Sn : : AhmBay Extreme Design © 1999-2024
Bu sitedeki materyallerin izin alınmadan Kısmen veya Tamamen Kopyalanmasi ve Kullanilması,
5846 sayılı Fikir ve Sanat Eserleri Yasasına göre suçtur.