Форум сайта python.su
как максимально просто и главное быстро найти не существующее уникальное поле в SQLObject?
ниже написанный код медленный и решает только часть проблемы - n может быть больше 20000 + медленно
n=20000 def NewNumber(): t=-1 for x in xrange(1,n+1,1): try: model.Class1.byNumber(x) except model.SQLObjectNotFound, msgs: return x return t
Офлайн
в классе class Class1(SQLObject) .... number = IntCol(alternateID = True) .....
Офлайн
pythonwinА что это за задача такая? Такие задачи ни с SQLObject ни вообще с SQL не решаются. В крайнем случае - пишите процедуру. Или всю выборку получать на клиенте и с ней разбираться.
как максимально просто и главное быстро найти не существующее уникальное поле в SQLObject?
Офлайн
подскажите, пожалуйста, как в sqlobject создать свою последовательность (в виде класса) и работать с ней?
Офлайн
pythonwinА если подойти к задаче с другой стороны:
как максимально просто и главное быстро найти не существующее уникальное поле в SQLObject?
Отредактировано (Март 13, 2007 12:55:24)
Офлайн
можно использовать последовательности - сейчас загвоздка в том как запустить через sqlobject код sql
CREATE SEQUENCE class1_number_seq;
и
SELECT NEXTVAL('class1_id_seq');
Отредактировано (Март 13, 2007 13:20:54)
Офлайн
Какая-то высосанная из пальца проблема.
Чем не подходит primary key по имени ‘id’, у которого установлен auto_increment?
Офлайн
Mkdirтоже вариант и вполне реализуемо - только при этом нужно будет бороться с sqlobject
Чем не подходит primary key по имени ‘id’, у которого установлен auto_increment?
Офлайн
pythonwinЭто почему же? Хочешь сказать, что sqlobject не знает что такое id записи таблицы? ;)
тоже вариант и вполне реализуемо - только при этом нужно будет бороться с sqlobject
Офлайн