--- PostgreSQL Admin <[EMAIL PROTECTED]> wrote: > I have a question that I've thought in my head about using triggers, but > I figure to ask people that do SQL more than I. So, I have a table that > I want two columns. > > (1) A featured column which is for only 1 row, once it switched to > another row than all other rows must be false > > title | author_id | categories | featured > --------------------------------+-----------+------+----- > Thierry Beta Release | 3 | 11 | True > Different Approach | 3 | 11 | > Ottawa Does Not Heart Hip-Hop | 3 | 11 | > > (2) A featured column by category and only allow category_feature equal > to the number of categories. > > Is SQL the way to go (and how - ideas), or should I use python for the > heavy lifting?
Are you saying that you have two featured columns? One column for category features and the other for article feature? If I understand you correctly, Item 1 can be achieved nicely with partial indexes. for example, if you only want to allow one row in the entire table to have "feature"= true: CREATE INDEX Only_one_row_true ON Your_table ( featured ) WHERE featured = true; Or if you want to only allow 1 featured article per catagory then: CREATE INDEX Only_one_row_true_per_catagory ON Your_table ( catigories, featured ) WHERE featured = true; This will ensure that the sum( featured = true ) <= sum( unique( catagories )). Regards, Richard Broersma Jr. ---------------------------(end of broadcast)--------------------------- TIP 1: 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