v2.5.2
Giriş yap

Veritabanı Üzerinde Taşıma ve Silme İşlemi

szrcmk
720 defa görüntülendi

Arkadaşlar Merhaba nereden baksanız 2 haftadır bu konu üzerinde çalışıyorum ama bir türlü işin içinden çıkamadım.

1 Tane tablom var adına tablo1 diyelim. Bu tabloma bir cihaz üzerinden veri geliyor. (Bu cihaza erişim yapamıyorum yani kodlarına müdahale edemiyorum)

Bu tabloya gelen verilerde tarih alanı NULL geliyor. Ve bir işlemden sonra cihaz bu kayda bir de update işlemi uygulayıp tarih alanını dolduruyor.

tablo1 e gelen verilerde tarih alanı güncellenmişse tablo2 ye TRIGERS ile yedekledim.

Örnek TRIGER Kodum aşağıdaki gibidir.

DELIMITER $$
CREATE TRIGGER ekleme AFTER UPDATE ON tablo1
    FOR EACH ROW 
        BEGIN
            IF NEW.tarih THEN
                INSERT INTO tablo2 SET id = new.id, baslik = NEW.baslik, tarih = NEW.tarih;
            END IF;
        END$$
DELIMITER ;

Tarih alanı dolmuşsa artık benim o kayıtla işim kalmadı ama bir yerde yedeklemem gerektiği için tablo2 ye aktardım.

Aktardıktan sonra benim bi şekilde tablo1den o kayıdı silmem gerekiyor bu işlemi trigers ile yapamıyorum zaten bir işlem var gibi bir hata veriyor.

Aklınıza gelen bir yöntem var mıdır nasıl çıkabilirim bu işin içinden bu tabloya 1-2 ayda 1 milyondan fazla kayıt geliyor o yüzden bu işlemi yapmam lazım.

NOT : Hiç olmadı Cron ile gece sonunda tarih alanı dolu olanları sildirmeyi planlıyorum. Ama farklı bir yöntem var ise onu yapmak isterim.

Şimdiden teşekkürler.

sahin0640
1831 gün önce

bence tablona mesela aktif gibi bir kolon oluştur ve değeri 0 olsun, tarih alanı dolacağı zaman oda 1 gibi bir değer alsın, sql ile sorgularken aktif=0 yap. böylece aktif 0 olan satırlar gelir.