2011-05-26 13 views
16

Tablodan herhangi bir kayıt seçtiğim her seferinde X tablosuna bir insert ifadesi çalıştırmaya çalışıyorum Y sadece MYSQL'i kullanarak bunu başarabildiğim var mı? Tetikleyiciler gibi bir şey? örtük bunu sana - Bir saklı yordam (bir günlük dosyası veya her ne gibi veya günlüğü tesis başka türde) oluşturmanız gerekir - Eğer SELECT tetiklemek olamaz - mysql'de select deyiminde bir tetikleyici başlatabilir miyim?

+2

Kısa cevap ** Hayır **. Tetikleyiciler "INSERT", "UPDATE" veya "DELETE" ile tetiklenir. –

+0

Tamam, başka bir çözümün var mı? –

+0

Seçimlerdeki her satırın güncellenmesi, toplu işlemlerde performans baş ağrısına neden olabilir. Bunu yapmak için mantıklı olan işlemler için bir last_accessed zaman damgasını özellikle güncellemek en iyisidir. –

cevap

20

Kısa yanıt Hayır. Tetikleyiciler, INSERT, UPDATE veya DELETE ile tetiklenir.

bu (garip) bir senaryo için

Olası çözüm:

  • Birincisi, yazma bazı saklanan prosedürler SELECT s
  • Sonra tablo X'te istiyorum kısıtlamak tüm kullanıcılar sadece kullanmak için ne bu saklı prosedürler ve değil onları da saklı bir çağrı masanın
  • Sonra depolanan prosedürleri değiştiriliyor X. üzerinde SELECT kullanmasına izin yapmak 'un istediğiniz işlemi (INSERT ya da her neyse) gerçekleştirir.
4

Hayır, teşekkür ederim Herhangi bir sorgu deyiminde arama yapın - sorgunuzu çağıran bir sarıcı oluşturursanız, günlüğe kaydetmeyi çağırır ve sorgu sonuçlarını döndürürse daha kolay olur.

İlgili konular