On Mon, Dec 20, 2004 at 09:56:35AM +0200, Vitaly Belman wrote:

> I have two tables. "Books" and "Book_Authors" (which links between
> book_id and author_id).

Is there a third table, perhaps Authors?

> Book_authors has a foreign key on book_id to the Books table. On key
> violation it is set to delete the rows (if a book is deleted, it
> should't be linked to any authors).
>
> In Book_Authors I also have a trigger on DELETE. When a book is
> unlinked from an author, then the author vote_count should be reduced
> (as the author vote_count is the sum of all votes of his books).

Which table has vote_count -- the Authors table that I'm guessing
exists?  Where does vote_count's value come from?  A field in Books?
Is there a reason you're maintaining vote_count instead of querying
for it with an aggregate like SUM or COUNT?

> The problem is that when a book is deleted and then the trigger tried
> to get the number of it votes, it returns NULL, as the book is already
> gone and so its data. If it was a simple matter of triggers I could
> play with BEFORE/AFTER, but since it is constraints issue, it seems to
> be all happening AFTER the deletion.

Is there a reason you can't maintain vote_count with a trigger on
Books?

Could you post a minimal but complete example (CREATE statements
and INSERT or COPY statements with sample data) so we can get a
better idea of what you're trying to do?

-- 
Michael Fuhr
http://www.fuhr.org/~mfuhr/

---------------------------(end of broadcast)---------------------------
TIP 3: if posting/reading through Usenet, please send an appropriate
      subscribe-nomail command to [EMAIL PROTECTED] so that your
      message can get through to the mailing list cleanly

Reply via email to