Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
многопоточная вставка строки в таблицу
|
|||
|---|---|---|---|
|
#18+
Есть программка которая должна вставлять в таблицу строку. Каким образом можно запросить у db2 идентификатор вставляемой строки, чтобы обеспечить возможность работы 2-х экземпляров программы в одно время без проблемной ситуации, сводящейся к тому, что они получат одинаковый идентификатор вставляемой строки и попытаются вставить одну и ту же строку. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.04.2010, 16:30 |
|
||
|
многопоточная вставка строки в таблицу
|
|||
|---|---|---|---|
|
#18+
CREATE SEQUENCE Код: plaintext 1. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.04.2010, 16:39 |
|
||
|
многопоточная вставка строки в таблицу
|
|||
|---|---|---|---|
|
#18+
Спасибо ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.04.2010, 16:44 |
|
||
|
многопоточная вставка строки в таблицу
|
|||
|---|---|---|---|
|
#18+
В продолжение темы. А как быть есть в таблицу может писать и другая программа. Можно ли как-то зарезервировать идентификатор перед вставкой строки с ним? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.04.2010, 15:58 |
|
||
|
многопоточная вставка строки в таблицу
|
|||
|---|---|---|---|
|
#18+
dizzy1984, SEQUENCE именно это и делает. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.04.2010, 16:07 |
|
||
|
многопоточная вставка строки в таблицу
|
|||
|---|---|---|---|
|
#18+
Нипаняттна. Допустим, я в своей программе создаю sequence за начало которой беру последнее значение идентификатора на текущий момент. Далее, до того как я перехожу к фазе выполнения запроса на вставку, пользователь сторонней программы вставляет строку с идентификатором, равным началу моей sequence. Затем я собственно вставляю строку используя "NEXT VALUE FOR myseqname". Что же произойдет? Неужели мне выдадется следующее свободное значение идентификатора? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.04.2010, 16:19 |
|
||
|
многопоточная вставка строки в таблицу
|
|||
|---|---|---|---|
|
#18+
SEQUENCE - ящик с номерками. Когда вы хотите сделать вставку, то вытаскиваете один и спокойно идёте вставлять. Другой программе или потоку будет выдан другой номер. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.04.2010, 16:31 |
|
||
|
многопоточная вставка строки в таблицу
|
|||
|---|---|---|---|
|
#18+
Да, но как быть если другая программа не использует sequence. Можно ли как-то разрулить и эту ситуацию? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.04.2010, 19:23 |
|
||
|
многопоточная вставка строки в таблицу
|
|||
|---|---|---|---|
|
#18+
dizzy1984, что такоое "идентификатор вставляемой строки"? Если это - суррогатный ключ, тогда: Таблица: Код: plaintext 1. 2. 3. 4. 5. Код: plaintext ID можно генерить и триггером, но IDENTITY или SEQUENCE гораздо эффективнее. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.04.2010, 22:16 |
|
||
|
многопоточная вставка строки в таблицу
|
|||
|---|---|---|---|
|
#18+
Не забывайте про чудный select from insert. Можно управиться одним запросом с двумя задачами, и не нужно ничего резервировать. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.04.2010, 23:27 |
|
||
|
многопоточная вставка строки в таблицу
|
|||
|---|---|---|---|
|
#18+
Идентификатор о котором идет речь - это ключ таблицы без возможности autoincrement. Поэтому нужно его явное значение в тексте запроса insert. Я рассматриваю ситуацию когда прикладная программа по какой-то малопонятной логике вставляет значения в таблицу, выбирая новые значения (больше максимального) этого ключа. Мне нужно делать то же самое но я боюсь что время от времени мы будет выбирать одинаковые значения этого ключевого поля. Сегодня поищу - возможно в бд есть sequence и она используется прикладной программкой, тогда и я бы ее тоже использовал. Если нет - вопрос открыт. Как узнать значение ключевого поля и зарезервировать его для последующего запроса insert. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.04.2010, 05:46 |
|
||
|
многопоточная вставка строки в таблицу
|
|||
|---|---|---|---|
|
#18+
Чтоб зря тему не заводить новую тут спрошу. Victor Metelitsa, при select from insert, если в insert возникает исключение, то получается блокировка. Можно её избежать? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.04.2010, 08:10 |
|
||
|
многопоточная вставка строки в таблицу
|
|||
|---|---|---|---|
|
#18+
Интересный момент. Удачный insert обязан породить блокировк(у|и), но я до сих пор как-то особо не задумывался, что остаётся при неудачном. Кроме блокировки на вставленную запись, должна быть блокировка на таблицу... (поведение, конечно, зависит от уровня изоляции и опций). Однако у меня грязную работу обычно выполняет GLORP (OR-framework для Smalltalk). Произошла неудача? Откатываем транзакцию, и после rollback мы ничего больше не блокируем. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.04.2010, 09:33 |
|
||
|
|

start [/forum/topic.php?fid=43&msg=36601029&tid=1602770]: |
0ms |
get settings: |
12ms |
get forum list: |
13ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
70ms |
get topic data: |
10ms |
get forum data: |
3ms |
get page messages: |
59ms |
get tp. blocked users: |
1ms |
| others: | 12ms |
| total: | 188ms |

| 0 / 0 |
