Postgresql forumlarında şöyle bir şey gördüm, denedim çalıştı.

*CREATE OR REPLACE RULE db_log_insert AS*
*    ON INSERT TO db DO  INSERT INTO db_log (a, b) *
*  VALUES ( (SELECT lastval()), new.b);*



06 Mayıs 2011 13:35 tarihinde Namık Güngör <[email protected]> yazdı:

> CREATE TABLE db (a serial PRIMARY KEY, b TEXT);
>
>
>
> CREATE TABLE db_log (a integer , b TEXT);
>
>
>
> CREATE OR REPLACE RULE db_log_insert AS
>
>     ON INSERT TO db DO  INSERT INTO db_log (a,b)
>
>   VALUES (new.a, new.b);
>
>
>
> INSERT INTO db (b)
>
>   VALUES ('deneme');
>
>
>
> INSERT INTO db (b)
>
>   VALUES ('deneme1');
>
>
>
> INSERT INTO db (b)
>
>   VALUES ('deneme2');
>
>
>
> select * from db
>
> 1;"deneme"
>
> 3;"deneme1"
>
> 5;"deneme2"
>
>
>
> Select * from db_log
>
> 2;"deneme"
>
> 4;"deneme1"
>
> 6;"deneme2"
>
>
>
> Merhaba. Yukarıdaki örnekte olduğu gibi bütün tablolarım için bir log
> tablosu tutuyorum.
>
> Fakat insert için rule tanımladıktan sonra "db" tablosundaki serial key
> tanımlı alan ikişer ikişer artmaya başlıyor.
>
> Aynı zamanda db_log tablosundaki   a  alanı db tablosundaki a alanının  1
> fazlası oluyor.
>
> Aynı tablolarda update ve delete için de rule lar var. Bunlarda bir problem
> olmadan düzgün değerleri alıyorum. Fakat insert için böyle bir sorun var.
>
> Nerede yanlış yapıyorum?
>
>
>
> İyi çalışmalar.
>
>
>
> Namık Güngör
>
> Ofis İletişim Bilgisayar San.Tic.Ltd.Şti.
> İzzetpaşa Mah. Yeniyol Cd. No: 1/2
>
> 34387 Şişli - İstanbul
> Tel   : +90 212 219 88 77
> Faks : +90 212 219 88 80
>
> [email protected]
>
> www.ofisiletisim.com.tr
>
> [image: Description: Description: Description: Description: OfisLogo]
>
>
>
> _______________________________________________
> Linux-programlama mailing list
> [email protected]
> https://liste.linux.org.tr/mailman/listinfo/linux-programlama
> Liste kurallari: http://liste.linux.org.tr/kurallar.php
>
>

<<image001.jpg>>

_______________________________________________
Linux-programlama mailing list
[email protected]
https://liste.linux.org.tr/mailman/listinfo/linux-programlama
Liste kurallari: http://liste.linux.org.tr/kurallar.php

Cevap