|
FB 2.5 одинаковые PK и UNIQUE индексы с одинаковыми полями в одной таблице одновременно
|
|||
---|---|---|---|
#18+
Всем доброго дня, в одном из проектов обнаружил проблему, одновременное наличие индексов с одинаковыми полями в PK и в unique индексах одновременно. Если данных в таблице нет то это прокатывало. Если данные есть то при создании PK индекса вываливало ".... violation of PRIMARY or UNIQUE KEY constraint "PK_INDEXNAME" on table "TABLENAME". Понятно что была допущена ошибка и нужен только один из индексов. Но стало интересно почему создание PK не прошло? По идее оба индекса независимы и хоть это не оптимально должно было бы функционировать. Таблицу проверил, повторяющихся ключей в ней нет (да и как они там могли быть если уникальный индекс уже существовал) Спасибо. ... |
|||
:
Нравится:
Не нравится:
|
|||
29.10.2021, 11:00 |
|
FB 2.5 одинаковые PK и UNIQUE индексы с одинаковыми полями в одной таблице одновременно
|
|||
---|---|---|---|
#18+
hlopotun Таблицу проверил, повторяющихся ключей в ней нет (да и как они там могли быть если уникальный индекс уже существовал) В сообщении об ошибке есть значения полей. Если сборка мусора заблокирована, то дубликаты в бекверсиях\удалённых записях когда-то могли мешать проверке уникальности. Это исправлялось, но я не вижу тут точной версии FB. ... |
|||
:
Нравится:
Не нравится:
|
|||
29.10.2021, 11:11 |
|
FB 2.5 одинаковые PK и UNIQUE индексы с одинаковыми полями в одной таблице одновременно
|
|||
---|---|---|---|
#18+
hvlad, 2.5.8 ... |
|||
:
Нравится:
Не нравится:
|
|||
29.10.2021, 11:21 |
|
FB 2.5 одинаковые PK и UNIQUE индексы с одинаковыми полями в одной таблице одновременно
|
|||
---|---|---|---|
#18+
да, забыл добавить, все поля входящие в индексы как not null маркированы. ... |
|||
:
Нравится:
Не нравится:
|
|||
29.10.2021, 11:23 |
|
FB 2.5 одинаковые PK и UNIQUE индексы с одинаковыми полями в одной таблице одновременно
|
|||
---|---|---|---|
#18+
DDL: Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49. 50. 51. 52. 53. 54. 55. 56. 57. 58. 59. 60. 61. 62. 63. 64. 65. 66. 67. 68. 69. 70. 71. 72. 73. 74. 75. 76. 77. 78. 79. 80. 81.
... |
|||
:
Нравится:
Не нравится:
|
|||
29.10.2021, 11:25 |
|
FB 2.5 одинаковые PK и UNIQUE индексы с одинаковыми полями в одной таблице одновременно
|
|||
---|---|---|---|
#18+
hvlad, а как правильно проверить заблокирована сборка мусора или нет? ... |
|||
:
Нравится:
Не нравится:
|
|||
29.10.2021, 11:28 |
|
FB 2.5 одинаковые PK и UNIQUE индексы с одинаковыми полями в одной таблице одновременно
|
|||
---|---|---|---|
#18+
hlopotun hvlad, а как правильно проверить заблокирована сборка мусора или нет? Или проверить наличие старой активной тр-ции, кроме read committed read only. ... |
|||
:
Нравится:
Не нравится:
|
|||
29.10.2021, 12:02 |
|
FB 2.5 одинаковые PK и UNIQUE индексы с одинаковыми полями в одной таблице одновременно
|
|||
---|---|---|---|
#18+
hlopotun да, забыл добавить, все поля входящие в индексы как not null маркированы. Никогда не сравнивай на равенство double precision. Тем более 5 шт. сразу. PS индекс PROALOCK_USRANG не нужен, он полностью продублирован индексом PROALOCK_MEUSR ... |
|||
:
Нравится:
Не нравится:
|
|||
29.10.2021, 12:09 |
|
FB 2.5 одинаковые PK и UNIQUE индексы с одинаковыми полями в одной таблице одновременно
|
|||
---|---|---|---|
#18+
Не знал, что double precision можно включать в первичный ключ... это что-то невообразимое. ... |
|||
:
Нравится:
Не нравится:
|
|||
29.10.2021, 12:21 |
|
FB 2.5 одинаковые PK и UNIQUE индексы с одинаковыми полями в одной таблице одновременно
|
|||
---|---|---|---|
#18+
ggreggory это что-то невообразимое. и столь же регулярно вызывает бурную реакцию окружающих. как натрий в воду. ... |
|||
:
Нравится:
Не нравится:
|
|||
29.10.2021, 12:33 |
|
FB 2.5 одинаковые PK и UNIQUE индексы с одинаковыми полями в одной таблице одновременно
|
|||
---|---|---|---|
#18+
Первичный ключ из восьми полей для меня из области фантастики. Как записи искать? ... |
|||
:
Нравится:
Не нравится:
|
|||
29.10.2021, 12:45 |
|
FB 2.5 одинаковые PK и UNIQUE индексы с одинаковыми полями в одной таблице одновременно
|
|||
---|---|---|---|
#18+
Мимопроходящийрегулярно всплывает. Это в основном безопасно. Во всех языках кроме Дельфи. Аффтару очень точно удалось найти единственные грабли посреди Сахары. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
29.10.2021, 12:48 |
|
FB 2.5 одинаковые PK и UNIQUE индексы с одинаковыми полями в одной таблице одновременно
|
|||
---|---|---|---|
#18+
KreatorXXI, а если надо будет эту таблицу связывать с другой? Восемь полей тащить в другую таблицу? В каких книжках пишут такие рекомендации? ... |
|||
:
Нравится:
Не нравится:
|
|||
29.10.2021, 12:50 |
|
FB 2.5 одинаковые PK и UNIQUE индексы с одинаковыми полями в одной таблице одновременно
|
|||
---|---|---|---|
#18+
Ну, эта тема много раз обсуждалась, но 8 полей я не припомню, да. P.S. Я даже к PK из двух полей отношусь с подозрением, мягко говоря. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
29.10.2021, 13:23 |
|
FB 2.5 одинаковые PK и UNIQUE индексы с одинаковыми полями в одной таблице одновременно
|
|||
---|---|---|---|
#18+
Гаджимурадов Рустам Ну, эта тема много раз обсуждалась, но 8 полей я не припомню, да. P.S. Я даже к PK из двух полей отношусь с подозрением, мягко говоря. когда то в одной конторе работал, там местный разработчик баз только составные первичные ключи использовал. Там бывало и поболее 8ми полей, ну конечно не double. Проект правда не взлетел, заказчик загнулся раньше. Попробую разобраться зачем человек такой ключ сделал. Меня просто попросили причину ошибки найти. Я даже пока незнаю назначение этой таблицы. Из названия какой то лог. ... |
|||
:
Нравится:
Не нравится:
|
|||
29.10.2021, 14:38 |
|
FB 2.5 одинаковые PK и UNIQUE индексы с одинаковыми полями в одной таблице одновременно
|
|||
---|---|---|---|
#18+
[quot hlopotun#22389940] Гаджимурадов Рустам Ну, эта тема много раз обсуждалась, но 8 полей я не припомню, да. P.S. Я даже к PK из двух полей отношусь с подозрением, мягко говоря. когда то в одной конторе работал, там местный разработчик баз только составные первичные ключи использовал. Там бывало и поболее 8ми полей, ну конечно не double. Проект правда не взлетел, заказчик загнулся раньше. Попробую разобраться зачем человек такой ключ сделал. Меня просто попросили причину ошибки найти. Я даже пока незнаю назначение этой таблицы. Из названия какой то блокировщик. ... |
|||
:
Нравится:
Не нравится:
|
|||
29.10.2021, 14:44 |
|
FB 2.5 одинаковые PK и UNIQUE индексы с одинаковыми полями в одной таблице одновременно
|
|||
---|---|---|---|
#18+
hlopotunа как правильно проверить заблокирована сборка мусора или нет? в mon$attachments у этого коннекта столбец MON$GARBAGE_COLLECTION будет равен 0.\ индексы PROALOCK_PRIMARY и PROALOCK_USRANG надо удалить к чертям, они лишние. Про ПК из 8 столбцов и double precision в индексе уже сказали. Обычно, если эти 8 столбцов действительно представляют собой "идентификатор", делают так: в таблицу вводят суррогатный ПК (числовой ID, заполняемый генератором или как IDENTITY). На 8 столбцов вводят уникальный констрейнт (не индекс, индекс по констренту будет создан автоматом). Но вообще уникальность по 8 столбцам - это дичь. ... |
|||
:
Нравится:
Не нравится:
|
|||
29.10.2021, 15:12 |
|
FB 2.5 одинаковые PK и UNIQUE индексы с одинаковыми полями в одной таблице одновременно
|
|||
---|---|---|---|
#18+
Гаджимурадов Рустам Ну, эта тема много раз обсуждалась, но 8 полей я не припомню, да. P.S. Я даже к PK из двух полей отношусь с подозрением, мягко говоря. Это из области холивара насчёт естественных и искусственных. Двухсегментные имхо вполне имеют право на жизнь по Оккаму. Скажем, архив событий невысокой интенсивности - ID сущности и таймштамп действа. Нафига там ещё создавать ID самой архивной записи. При высокой интенсивности, конечно, рано или поздно наступишь на дискретность времени. Или хранимые агретаты - ID сущности, ID периода, в атрибутах сумма и прочая считаемая фигня. Можно ещё что-нибудь вспомнить специфическое. Но в целом ноги многосегментных PK растут из времён когда деревья были большими ужасающе медленный по нынешним понятиям диск в 1Гб был вершиной технического прогресса, а ОЗУ 512Мб позволяли себе только сумасшедшие миллионеры. Приходилось экономить на спичках и не плодить "лишних" индексов. Я тогда немало всяких чудес сотворил. Потом, конечно, пришёл к целостности на ID и всей естественности даже не на UK, а просто на уникальных индексах. Но данный конкретной случай, конечно, патология. ... |
|||
:
Нравится:
Не нравится:
|
|||
29.10.2021, 15:21 |
|
FB 2.5 одинаковые PK и UNIQUE индексы с одинаковыми полями в одной таблице одновременно
|
|||
---|---|---|---|
#18+
Dimitry Sibiryakov Во всех языках кроме Дельфи. Дельфи-то тут каким боком. Это архитектура процессора. ... |
|||
:
Нравится:
Не нравится:
|
|||
29.10.2021, 16:59 |
|
FB 2.5 одинаковые PK и UNIQUE индексы с одинаковыми полями в одной таблице одновременно
|
|||
---|---|---|---|
#18+
ggreggoryДельфи-то тут каким боком. Оно "под капотом" округляет плавающие числа, отбрасывая младший бит. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
29.10.2021, 17:11 |
|
FB 2.5 одинаковые PK и UNIQUE индексы с одинаковыми полями в одной таблице одновременно
|
|||
---|---|---|---|
#18+
Dimitry Sibiryakov Оно "под капотом" округляет плавающие числа, отбрасывая младший бит. ... |
|||
:
Нравится:
Не нравится:
|
|||
29.10.2021, 17:13 |
|
FB 2.5 одинаковые PK и UNIQUE индексы с одинаковыми полями в одной таблице одновременно
|
|||
---|---|---|---|
#18+
Мимопроходящийзачем? Чтобы не пугать дельфинов граблями типа 0.2 + 0.2 <> 0.4, на которых ловятся сишники. Учебный же язык. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
29.10.2021, 17:18 |
|
FB 2.5 одинаковые PK и UNIQUE индексы с одинаковыми полями в одной таблице одновременно
|
|||
---|---|---|---|
#18+
Dimitry Sibiryakov ggreggoryДельфи-то тут каким боком. Оно "под капотом" округляет плавающие числа, отбрасывая младший бит. Чушь какая. Кто вам такое сказал? И что такое "младший бит вещественного числа"? :D ... |
|||
:
Нравится:
Не нравится:
|
|||
29.10.2021, 17:52 |
|
FB 2.5 одинаковые PK и UNIQUE индексы с одинаковыми полями в одной таблице одновременно
|
|||
---|---|---|---|
#18+
ggreggoryКто вам такое сказал? И что такое "младший бит вещественного числа"? :D Исходники. Младший бит мантиссы. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
29.10.2021, 18:49 |
|
FB 2.5 одинаковые PK и UNIQUE индексы с одинаковыми полями в одной таблице одновременно
|
|||
---|---|---|---|
#18+
Dimitry Sibiryakov ggreggoryКто вам такое сказал? И что такое "младший бит вещественного числа"? :D Исходники. Младший бит мантиссы. Отбрасывание младших битов мантиссы приводит не к округлению, а к уменьшению числа. Т.е. в результате расчетов вы будете получать ДРУГОЕ число. Хотя бы из этих соображений ваш пост про младший бит - бред. Про исходники я молчу. Как в исходниках можно что-то увидеть? увидеть можно только в бинарном коде или его ассемблерном представлении. ... |
|||
:
Нравится:
Не нравится:
|
|||
29.10.2021, 19:45 |
|
|
start [/forum/topic.php?fid=40&fpage=3&tid=1559900]: |
0ms |
get settings: |
11ms |
get forum list: |
17ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
29ms |
get topic data: |
13ms |
get forum data: |
3ms |
get page messages: |
70ms |
get tp. blocked users: |
2ms |
others: | 241ms |
total: | 394ms |
0 / 0 |