Tough Problem -- Record Checkouts
От | Alfred |
---|---|
Тема | Tough Problem -- Record Checkouts |
Дата | |
Msg-id | 1139851981.176833.302970@g43g2000cwa.googlegroups.com обсуждение исходный текст |
Ответы |
Re: Tough Problem -- Record Checkouts
|
Список | pgsql-sql |
Imagine a library of books. Each book is a record. The library is the table. A user may check out a book and the shelf space it once occupied will store the minute that the user checked the book out. Every 5 minutes, a magical librarian walks through the library and when a book has been checked out longer than 15 minutes, she has the power to zap it back out of the user's hands and put it back on the shelf for someone else. How do you efficiently achieve this in a WHERE clause in SQL? For instance, here's a table of several minute columns. CO, in this case, is the checked out minute. N, in this case, is the current minute. This translates to, "If the CO = x, and N is within this range, then clear the CO column." CO | N ------+----------------------- 0 | 15-59 1 | 0, 16-59 2 | 0-1, 17-59 15 | 0-14, 30-59 16 | 0-15, 31-59 30 | 0-29, 45-59 31 | 0-30, 46-59 45 | 0-44 46 | 1-45 59 | 14-58 This becomes some kind of UPDATE statement with a complex WHERE clause.
В списке pgsql-sql по дате отправления: