|
SA11 и SA12 - баг сервера, или я что то не понимаю?
|
|||
---|---|---|---|
#18+
Добрый день. Сервер Sybase ASA. В общем виде выполняется такая констукция: создана глобальная временная таблица NOT TRANSACTIONAL Код: plaintext 1. 2. 3. 4. 5.
и есть такая процедура Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15.
Так вот... если выполняю данную процедуру НЕСКОЛЬКО раз подряд на SA10 (10.0.1.4075), то все нормально. Если пытаюсь выполнить на SA11 (11.0.1.2472) или на SA12 (12.0.0.2566), то на второй или третий раз - ругается: "не уникален первичный ключ". Получается что, не отрабатывает команда DELETE test_insert Я что то не так понимаю в работе глобальных временных таблиц или это баг сервера? С Уважением Вадим. ... |
|||
:
Нравится:
Не нравится:
|
|||
16.09.2010, 12:29 |
|
SA11 и SA12 - баг сервера, или я что то не понимаю?
|
|||
---|---|---|---|
#18+
Рекомендация сменить ключ на неуникальный индекс. Временные таблицы видят данные только текущего коннекта, поэтому delete из другого коннекта не удалит данных, введенных в первом. Видимо в разных версиях по-разному выполняется проверка уникальности ключа - в рамках одного коннекта или для всех. У них так часто - типа исправили потому что "так оно и должно быть" а старые приложения перестают работать. ... |
|||
:
Нравится:
Не нравится:
|
|||
27.09.2010, 16:53 |
|
SA11 и SA12 - баг сервера, или я что то не понимаю?
|
|||
---|---|---|---|
#18+
VolokolaЯ что то не так понимаю в работе глобальных временных таблиц или это баг сервера? Баг сервера. Только где - это нужно определять. Вставьте после DELETE оператор SELECT чтобы убедиться, что записи удаляются, а перед INSERT вставьте MESSAGE @n TO CLIENT чтобы увидеть на каком номере дает ошибку. ... |
|||
:
Нравится:
Не нравится:
|
|||
28.09.2010, 10:15 |
|
SA11 и SA12 - баг сервера, или я что то не понимаю?
|
|||
---|---|---|---|
#18+
Только что проверил - это бага сервера. на 2452 - все ок на 2467 - ошибка появилась. Нюансы: 1. create Global temporary table ... not transactions; - ошибка с дублированием записей присутствует. 1. create Global temporary table ... on commit preserverows; - ошибка с дублированием записей отсутствует. ... |
|||
:
Нравится:
Не нравится:
|
|||
30.09.2010, 17:51 |
|
SA11 и SA12 - баг сервера, или я что то не понимаю?
|
|||
---|---|---|---|
#18+
Спасибо. ASCRUSВставьте после DELETE оператор SELECT чтобы убедиться, что записи удаляются Проверил, записи удаляются почему то не все. аASCRUSа перед INSERT вставьте MESSAGE @n TO CLIENT чтобы увидеть на каком номере дает ошибку. каждый раз на разном. v_smirnovНюансы: 1. create Global temporary table ... not transactions; - ошибка с дублированием записей присутствует. 1. create Global temporary table ... on commit preserverows; - ошибка с дублированием записей отсутствует. Есть такое. Но в данном случае необходимо - not transactions. ... |
|||
:
Нравится:
Не нравится:
|
|||
01.10.2010, 09:29 |
|
SA11 и SA12 - баг сервера, или я что то не понимаю?
|
|||
---|---|---|---|
#18+
Почему бы вместо delete не использовать truncate table? ... |
|||
:
Нравится:
Не нравится:
|
|||
01.10.2010, 21:01 |
|
SA11 и SA12 - баг сервера, или я что то не понимаю?
|
|||
---|---|---|---|
#18+
МарсельПочему бы вместо delete не использовать truncate table? truncate table - неявно вызывает окончание транзакции. В данном случае приведен упрощенный (схематический) кусок процедуры, которая выполняется в составе одной транзакции, начало и окончание которой вызывается в других процедурах. ... |
|||
:
Нравится:
Не нравится:
|
|||
04.10.2010, 09:25 |
|
|
start [/forum/topic.php?fid=55&msg=36869271&tid=2010521]: |
0ms |
get settings: |
9ms |
get forum list: |
11ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
51ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
40ms |
get tp. blocked users: |
1ms |
others: | 13ms |
total: | 142ms |
0 / 0 |