Latest posts on уникальные поля в SQLObject - часть 2 topichttp://python.su/forum/topic/542/2007-03-14T11:30:20+02:00Общий :: Базы данных :: уникальные поля в SQLObject - часть 2
2007-03-14T11:30:20+02:00Mkdir3839<blockquote><em>pythonwin</em><br/>тоже вариант и вполне реализуемо - только при этом нужно будет бороться с sqlobject</blockquote>Это почему же? Хочешь сказать, что sqlobject не знает что такое id записи таблицы? ;)
Общий :: Базы данных :: уникальные поля в SQLObject - часть 2
2007-03-14T07:14:52+02:00pythonwin3833<blockquote><em>Mkdir</em><br/>Чем не подходит primary key по имени ‘id’, у которого установлен auto_increment?</blockquote>тоже вариант и вполне реализуемо - только при этом нужно будет бороться с sqlobject
Общий :: Базы данных :: уникальные поля в SQLObject - часть 2
2007-03-13T14:53:13+02:00Mkdir3823Какая-то высосанная из пальца проблема.<br/>Чем не подходит primary key по имени ‘id’, у которого установлен auto_increment?
Общий :: Базы данных :: уникальные поля в SQLObject - часть 2
2007-03-13T13:20:34+02:00pythonwin3822можно использовать последовательности - сейчас загвоздка в том как запустить через sqlobject код sql<br/>CREATE SEQUENCE class1_number_seq;<br/>и<br/>SELECT NEXTVAL('class1_id_seq');
Общий :: Базы данных :: уникальные поля в SQLObject - часть 2
2007-03-13T12:54:59+02:00Mkdir3820<blockquote><em>pythonwin</em><br/>как максимально просто и главное быстро найти не существующее уникальное поле в SQLObject?</blockquote>А если подойти к задаче с другой стороны:<br/>1. Загадать случайное число.<br/>2. Проверить есть ли оно в базе.<br/>3. Если есть, то перейти к п.1, если нет, то к п.4<br/>4. Ок.
Общий :: Базы данных :: уникальные поля в SQLObject - часть 2
2007-03-13T11:23:49+02:00pythonwin3818подскажите, пожалуйста, как в sqlobject создать свою последовательность (в виде класса) и работать с ней?
Общий :: Базы данных :: уникальные поля в SQLObject - часть 2
2007-03-12T15:22:25+02:00OlDer3807<blockquote><em>pythonwin</em><br/>как максимально просто и главное быстро найти не существующее уникальное поле в SQLObject?</blockquote>А что это за задача такая? Такие задачи ни с SQLObject ни вообще с SQL не решаются. В крайнем случае - пишите процедуру. Или всю выборку получать на клиенте и с ней разбираться.<br/>Самое главное тут понять что пока вы будете искать это “несуществующее уникальное поле” - другой клиент может вставить в БД запись с таким же “несуществующим” значением.
Общий :: Базы данных :: уникальные поля в SQLObject - часть 2
2007-03-12T14:31:09+02:00pythonwin3805<div class="code"><pre><span class="err">в</span> <span class="err">классе</span>
<span class="k">class</span> <span class="nc">Class1</span><span class="p">(</span><span class="n">SQLObject</span><span class="p">)</span>
<span class="o">....</span>
<span class="n">number</span> <span class="o">=</span> <span class="n">IntCol</span><span class="p">(</span><span class="n">alternateID</span> <span class="o">=</span> <span class="bp">True</span><span class="p">)</span>
<span class="o">.....</span>
</pre></div>
Общий :: Базы данных :: уникальные поля в SQLObject - часть 2
2007-03-12T14:00:02+02:00pythonwin3804как максимально просто и главное быстро найти не существующее уникальное поле в SQLObject?<br/>ниже написанный код медленный и решает только часть проблемы - n может быть больше 20000 + медленно<br/><div class="code"><pre><span class="n">n</span><span class="o">=</span><span class="mi">20000</span>
<span class="k">def</span> <span class="nf">NewNumber</span><span class="p">():</span>
<span class="n">t</span><span class="o">=-</span><span class="mi">1</span>
<span class="k">for</span> <span class="n">x</span> <span class="ow">in</span> <span class="nb">xrange</span><span class="p">(</span><span class="mi">1</span><span class="p">,</span><span class="n">n</span><span class="o">+</span><span class="mi">1</span><span class="p">,</span><span class="mi">1</span><span class="p">):</span>
<span class="k">try</span><span class="p">:</span>
<span class="n">model</span><span class="o">.</span><span class="n">Class1</span><span class="o">.</span><span class="n">byNumber</span><span class="p">(</span><span class="n">x</span><span class="p">)</span>
<span class="k">except</span> <span class="n">model</span><span class="o">.</span><span class="n">SQLObjectNotFound</span><span class="p">,</span> <span class="n">msgs</span><span class="p">:</span>
<span class="k">return</span> <span class="n">x</span>
<span class="k">return</span> <span class="n">t</span>
</pre></div>