Rule problem

Collapse
This topic is closed.
X
X
 
  • Time
  • Show
Clear All
new posts
  • Kiarash Bodouhi

    #1

    Rule problem



    Hello all



    I tried to use following rule instead of using a default value(I want to be
    able to put a function instead of the constant value later on). But it keeps
    giving me infinite recursion error. Any ideas?



    CREATE OR REPLACE RULE "INSERT" AS

    ON INSERT TO customer_rate where new.code is null DO INSTEAD INSERT INTO
    customer_rate (prefix, rate, name, code,groupid)

    VALUES (new.prefix, new.rate, new.name,'1',ne w.groupid);



    Thanking you in advance

    Regards

    Kia




  • Tom Lane

    #2
    Re: Rule problem

    "Kiarash Bodouhi" <kbodouhi@yahoo .com> writes:[color=blue]
    > I tried to use following rule instead of using a default value[/color]

    You can't ... at least not that way.
    [color=blue]
    > (I want to be
    > able to put a function instead of the constant value later on).[/color]

    There's nothing stopping you from putting a function into the DEFAULT
    clause.

    A "BEFORE INSERT" trigger is another possible approach.

    Novices often think that rules are simpler to use than triggers,
    but in my experience the opposite is true. Triggers have some
    notational ugliness but the conceptual model is simple ... for
    rules the notation looks easy but wrapping your head around what
    will really happen is another story.

    regards, tom lane

    ---------------------------(end of broadcast)---------------------------
    TIP 4: Don't 'kill -9' the postmaster

    Comment

    • Kiarash Bodouhi

      #3
      Re: Rule problem

      Thanks for the reply. I initially wanted to put the function as the default
      clause. But the problem is that the function should receive one of the other
      fields as the argument. Is there anyway to do that? I guess as you said I
      have to use triggers.

      -----Original Message-----
      From: Tom Lane [mailto:tgl@sss. pgh.pa.us]
      Sent: Sunday, October 10, 2004 4:53 PM
      To: Kiarash Bodouhi
      Cc: pgsql-general@postgre sql.org
      Subject: Re: [GENERAL] Rule problem

      "Kiarash Bodouhi" <kbodouhi@yahoo .com> writes:[color=blue]
      > I tried to use following rule instead of using a default value[/color]

      You can't ... at least not that way.
      [color=blue]
      > (I want to be
      > able to put a function instead of the constant value later on).[/color]

      There's nothing stopping you from putting a function into the DEFAULT
      clause.

      A "BEFORE INSERT" trigger is another possible approach.

      Novices often think that rules are simpler to use than triggers,
      but in my experience the opposite is true. Triggers have some
      notational ugliness but the conceptual model is simple ... for
      rules the notation looks easy but wrapping your head around what
      will really happen is another story.

      regards, tom lane


      ---------------------------(end of broadcast)---------------------------
      TIP 8: explain analyze is your friend

      Comment

      Working...