Найти - Пользователи
Полная версия: уникальные поля в SQLObject - часть 2
Начало » Базы данных » уникальные поля в SQLObject - часть 2
1
pythonwin
как максимально просто и главное быстро найти не существующее уникальное поле в 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
pythonwin
в классе
class Class1(SQLObject)
....
    number = IntCol(alternateID = True)
.....
OlDer
pythonwin
как максимально просто и главное быстро найти не существующее уникальное поле в SQLObject?
А что это за задача такая? Такие задачи ни с SQLObject ни вообще с SQL не решаются. В крайнем случае - пишите процедуру. Или всю выборку получать на клиенте и с ней разбираться.
Самое главное тут понять что пока вы будете искать это “несуществующее уникальное поле” - другой клиент может вставить в БД запись с таким же “несуществующим” значением.
pythonwin
подскажите, пожалуйста, как в sqlobject создать свою последовательность (в виде класса) и работать с ней?
Mkdir
pythonwin
как максимально просто и главное быстро найти не существующее уникальное поле в SQLObject?
А если подойти к задаче с другой стороны:
1. Загадать случайное число.
2. Проверить есть ли оно в базе.
3. Если есть, то перейти к п.1, если нет, то к п.4
4. Ок.
pythonwin
можно использовать последовательности - сейчас загвоздка в том как запустить через sqlobject код sql
CREATE SEQUENCE class1_number_seq;
и
SELECT NEXTVAL('class1_id_seq');
Mkdir
Какая-то высосанная из пальца проблема.
Чем не подходит primary key по имени ‘id’, у которого установлен auto_increment?
pythonwin
Mkdir
Чем не подходит primary key по имени ‘id’, у которого установлен auto_increment?
тоже вариант и вполне реализуемо - только при этом нужно будет бороться с sqlobject
Mkdir
pythonwin
тоже вариант и вполне реализуемо - только при этом нужно будет бороться с sqlobject
Это почему же? Хочешь сказать, что sqlobject не знает что такое id записи таблицы? ;)
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB