2016-04-03 15 views
0

Web sitemde bu çevrimiçi masaya ulaşmak için her 5 dakikada bir mysqlimport (toplu iş dosyası) kayıtlarını belirli bir tabloya aktarıyorum.MySQL tetikleyicisi ekleyerek (tablo aracılığıyla) tablo oluşturmak ve oluşturmak için (0)

Şu anda bir Windows toplu iş dosyasında çalıştırılan 2 .sql dosyasını uzak bir veritabanına gönderdim: 1 SQL komutu, tabloyu oluşturmak ve sonra da CSV ile tabloyu doldurmak için mysqlimport ile ikinci bir komut.

Daha iyi bir yol benim toplu dosyadan bir mysqlimport komutu göndermek ve bu özel DB üzerine eklemek ve yeni kayıtlar eklemeden önce yeniden oluşturmak için veritabanı üzerine bir tetikleyici olması gerekip gerekmediğini merak ediyordum Tablo düştüğü an arasında yeniden oluşan bir boşluk (kayıt yok), yeniden yaratıldı ve daha sonra çok şey olan CSV ile dolduruldu.

Böyle bir tetikleyiciyi nasıl uygulayacağınız hakkında bir fikriniz var mı? Tablonun online_players tablonun

Yapısı:

+-------------------+--------------+------+-----+---------+-------+ 
| Agent    | varchar(255) | YES |  | NULL |  | 
| Name    | varchar(255) | YES |  | NULL |  | 
| Alias    | varchar(255) | YES |  | NULL |  | 
| Begin_Date  | varchar(100) | YES |  | NULL |  | 
| LastBalanceUpdate | varchar(100) | YES |  | NULL |  | 
| Session_minutes | varchar(100) | YES |  | NULL |  | 
| Balance   | varchar(100) | YES |  | NULL |  | 
| Product   | varchar(100) | YES |  | NULL |  | 
+-------------------+--------------+------+-----+---------+-------+ 
+0

Bu tablo için tanımlanmış benzersiz bir anahtarınız var mı? Eğer öyleyse, yeni bir CSV dosyası ile yeniden yüklemek için gereken her seferinde tabloyu yeniden oluşturmak zorunda kalmadan eşsiz anahtar üzerindeki '' mysqlimport'' '' '' seçeneğini kullanabilmeniz gerekir .. – vmachan

+0

Hayır ama bir tane ayarlayabilirim up. İçe aktarmadan önceki satırların değiştirileceğini anladım mı? masa bırakmaya gerek kalmadan? –

+0

Sonunda bilmediğim -d veya --delete parametresini kullanıp ekleme yapmadan önce tablodaki tüm satırları silerim. Yardım ettiğin için teşekkür ederim! –

cevap

0

Ben csv aktarmadan önce tüm satırları siler mysqlimport içinde -d parametresini kullanarak her ekleme önce tabloyu yaratan/düşürüyorsun sorunu çözüldü. Yardımlarınız için teşekkürler vmachan!

İlgili konular