Bir tablo, A diyelim, A güncelleştirilir, A satırları sayısını sayar ve başka bir tablo B'de bir değer güncelleştirir bir tetikleyici yapmak istiyorum nasıl bu yapılabilir?PGSQL: Başka bir tablonun satırlarının tetikleyici sayacı
cevap
tamamını buradan numune vardır: http://www.postgresql.org/docs/9.3/static/plpgsql-trigger.html
sağlamanız gerekiyor saklı yordam oluşturmak için: İŞLEVİ your_function_name (parameters_goes_here) CREATE returned_data_type_or_trigger_for_triggers OLARAK string_value_with_body DÖNDÜ;
Normalde noktalı virgül biter komutu, böylece gövdeyi yazamazsınız. Diğer veritabanları komut sınırlayıcıyı değiştirir. PG özel string sınırlayıcı dolar işaretleri sağlar. Lütfen bu konuyla ilgili daha fazla bilgi edinin: What are '$$' used for in PL/pgSQL
Sayaçlara geri dönmek - onlar çok zordur. Konuları konularda saydığınızı varsayalım. Ve iki konu arasındaki mesajları taşıyor. Sayaçları olduğundan, konular güncellenir. Bu da güncelleme kilidi anlamına geliyor. İki konu arasında taşınan iki eşzamanlı mesaj varsa ne olur? İlk hamle temel konusunu kilitler ve diğerini dener. Aynı şey diğerine de olur. : D Onunla başa çıkmak için her ikisinin de aynı olanla çalıştığından emin olmalısınız. Örneğin konuları ID ile sıralayın ve bunlardan ilkini seçin.
, ben bu kodu CREATE OR REPLACE FUNCTION contar_formar() GETİRİLERİ $ GÜNCELLEME equipos SET numeromiembros BEGIN $ VÜCUT OLARAK tetiklemek yapılan = (count (*) SEÇ GELEN formar) WHERE idequipo = (SELECT equipo formar); END; $ BODY $ LANGUAGE plpgsql VOLATILE COST 100; ALTER FONKSİYONU contar_formar() Posta gönderimi SAHİBİ; ama formar bir şey eklemeye çalıştığınızda onun çalışmıyor, bu Bir hata oluştu diyor ki: HATA: Kontrol DÖNÜŞ BAĞLAMINDA olmadan tetik prosedürü sonuna gelmiş: PL/pgSQL fonksiyon contar_formar() –
çözüldü, Bitmeden önce RETURN NULL eklemek zorunda kaldım, yardımın için teşekkür ederim! –
- 1. Tablonun başka bir sütun ile güncellenmesi
- 2. change pgsql bağlantı noktası
- 3. İç tablo başka bir masala birleştirildiğinde geçici tablo satırlarının sırasını nasıl koruruz?
- 4. Metin satırlarının düzenlenmesi R
- 5. MySQL'deki başka bir tablonun toplam sonucu olan alanlar nasıl güncellenir?
- 6. Django'nun OneToOneField'ı başka bir tablonun kimlik alanına başvurmuyor mu?
- 7. pgSQL içinde dizi değerlerini kaldır
- 8. Program Sayacı?
- 9. Bir tablonun satırlarına ekleme
- 10. uygun tetikleyici?
- 11. MySQL tetikleyici
- 12. Tetikleyici Jenkins, belirli bir alana
- 13. Geri Sayım Sayacı Bildirimi
- 14. NHibernate - Üzerinde bir tetikleyici bulunan bir tablonun güncellenmesi bir hataya neden olur - Beklenmeyen satır sayısı: 2; bekleniyor: 1
- 15. mysql'de select deyiminde bir tetikleyici başlatabilir miyim?
- 16. backbone.js tetikleyici olayları render()
- 17. Belirli bir sütun için tetikleyici takın
- 18. jquery - bir tablonun kuşak satırı?
- 19. Veritabanındaki bir tablonun sahipliğini değiştirme
- 20. PHP'de bir tablonun toplamını ekleme
- 21. Bir tablonun SQL sütunlarını gruplama
- 22. Tablonun içine bir yönerge yerleştirme
- 23. Birkaç zaman sayacı MATLAB
- 24. Döngü sayacı için django
- 25. foreach döngü sayacı
- 26. URL'lerde CSS sayacı
- 27. Pygame'de geri sayım sayacı
- 28. Django şablon sayacı
- 29. Magento'daki sayaç sayacı
- 30. Bir kullanıcı başka bir tablonun hücresinin üzerine geldiğinde nasıl bir veri tablosu görüntüleyebilirim?
Şimdiye kadar denediğin şey çabalarını gösteriyor mu? –
Veritabanları oluşturma konusunda çok yeni olan pgsql için çok yeni, postgresql.org belgelerini izleyerek bir tetikleyici oluşturmaya çalışıyorum ama bir prosedürün nasıl oluşturulacağını çok açıklamıyorum. Ben takip ediyordu örnek oldu –