Merhaba arkadaşlar,
3 table ım war;
kasa, bakiye ve kit
ben kasa insert edildiği zaman bakiye tablosuna kit in data sayısı kadar bilgi girişi yapıcam. Ancak bakiye tablosuna her girdiğim kitin id numarasınıda yazıcam. Nasıl bir döngü yapabilirim?
KASA TABLOSU;
CREATE TABLE KASA (
KA_ID INTEGER,
KA_HPID INTEGER,
KA_HPKOD VARCHAR(40) COLLATE PXW_TURK,
KA_KOD VARCHAR(10) COLLATE PXW_TURK,
KA_TANIM VARCHAR(20) COLLATE PXW_TURK,
KA_DV INTEGER,
KA_ACILIS FLOAT,
KA_BORC FLOAT,
KA_ALACAK FLOAT,
KA_KASATUR INTEGER,
KA_AYAR INTEGER,
KA_SBID INTEGER,
KA_ISLEV INTEGER,
KA_DKID INTEGER
);
BAKİYE TABLOSU;CREATE TABLE BAKIYE (
BAK_ID INTEGER,
KASA_ID INTEGER,
KIT_ID INTEGER,
BORC FLOAT,
ALACAK FLOAT
);
KIT TABLOSU;
CREATE TABLE KIT (
KIT_ID INTEGER,
KIT_TANIM VARCHAR(20)
);
şimdiden teşekkür ederim.
trigger da for döngüsü
1. Eksik soru, kullandığınız veritabanını yazmazsanız yardım almakta zorlanırsınız.
2. Fahrettin abinin makaleler forumunda triggerlarla ilgili güzel bir makalesi vardı, bunla birlikte forumda bir araştırma yapıp takıldığınız noktalarda soru sorarsanız daha faydalı olur. Bu şekilde direk hazır cevap alamayabilirsiniz ayrıca siz araştırıp birşeyler yapmaya çalışırsanız daha çabuk öğrenmiş olursunuz.
2. Fahrettin abinin makaleler forumunda triggerlarla ilgili güzel bir makalesi vardı, bunla birlikte forumda bir araştırma yapıp takıldığınız noktalarda soru sorarsanız daha faydalı olur. Bu şekilde direk hazır cevap alamayabilirsiniz ayrıca siz araştırıp birşeyler yapmaya çalışırsanız daha çabuk öğrenmiş olursunuz.
Test tablo adı olsun. İçinde Adi, Soyadi, Dogum_Tarihi alanları olsun.
IBExpert ile trigger'da VARIABLE alanlar oluştur. AAdi, ASoyadi, ADogumTarihi gibi. Bunlari tablodaki alan tipleri ile aynı tip oluştur. CHAR ise CHAR, DATE ise DATE
IBExpert ile trigger'da VARIABLE alanlar oluştur. AAdi, ASoyadi, ADogumTarihi gibi. Bunlari tablodaki alan tipleri ile aynı tip oluştur. CHAR ise CHAR, DATE ise DATE
Kod: Tümünü seç
for SELECT Adi, Soyadi, Dogum_Tarihi from TEST
WHERE Dogum_Tarihi < '18.10.1989'
INTO :AAdi, :ASoyadi, :ADogum_Tarihi DO
begin
-- Burada 18.10.1989 dan önce doğanların kayıtları satır satır AAdi, ASoyadi.. içine gelecek.
-- Bu bilgileri kullanarak insert işlemi gerçekleştirilebilir.
end
@codelord dedğin gibi
bu şekilde yazdım çalıştı ve çözüldü. Çok teşekkür ederim yardımın için.
Kod: Tümünü seç
CREATE TRIGGER KASA_EKLEME FOR KASA
ACTIVE AFTER INSERT POSITION 0
AS
declare variable kit_id1 integer;
begin
FOR SELECT kit_id FROM kit INTO kit_id1
DO
BEGIN
INSERT INTO bakiye (kasa_id,kit_id,borc,alacak) VALUES (new.ka_id,:kit_id1,0,0);
END