|
Не создаётся первичный ключ
|
|||
---|---|---|---|
#18+
Добрый день всем! Сейчас просто не могу создать первичный ключ для таблицы. Выдаётся та же ошибка: The insert failed because a column definition includes validation constraints. validation error for column ID, value "*** null ***". Никаких триггеров нет. Убрал все зависимости. Убрал все вторичные ключи. Запускаю скрипт: ALTER TABLE MyTable ADD CONSTRAINT PK_LUN_EMPLOYEES_CHARGES PRIMARY KEY (ID); Выдаётся ошибка: The insert failed because a column definition includes validation constraints. validation error for column ID, value "*** null ***". Непонятно что и куда он пытается вставить? ... |
|||
:
Нравится:
Не нравится:
|
|||
25.04.2018, 09:03 |
|
Не создаётся первичный ключ
|
|||
---|---|---|---|
#18+
Не смотри на insert, смотри на нуллы Джекcolumn definition includes validation constraints. validation error for column ID, value "*** null ***". ... |
|||
:
Нравится:
Не нравится:
|
|||
25.04.2018, 09:29 |
|
Не создаётся первичный ключ
|
|||
---|---|---|---|
#18+
hvladНе смотри на insert, смотри на нуллы Куда смотреть? Вот так столбец определён в структцре таблицы: ID P_KEY NOT NULL /* P_KEY = INTEGER NOT NULL */ . Таблица пустая. ... |
|||
:
Нравится:
Не нравится:
|
|||
25.04.2018, 09:39 |
|
Не создаётся первичный ключ
|
|||
---|---|---|---|
#18+
ДжекТаблица пустая.Значит не пустая. ... |
|||
:
Нравится:
Не нравится:
|
|||
25.04.2018, 09:47 |
|
Не создаётся первичный ключ
|
|||
---|---|---|---|
#18+
hvlad Значит не пустая. IBExpert показывает 0 записей. Кроме этого я делал Empty table, потом Commit Transaction, переконнетивался... Ничего не помогло. По-моему, тут явно какой-то глюк файербёрда. ... |
|||
:
Нравится:
Не нравится:
|
|||
25.04.2018, 09:54 |
|
Не создаётся первичный ключ
|
|||
---|---|---|---|
#18+
...запрос: select count(*) from MyTable тоже выдаёт 0 записей... ... |
|||
:
Нравится:
Не нравится:
|
|||
25.04.2018, 09:56 |
|
Не создаётся первичный ключ
|
|||
---|---|---|---|
#18+
Джек, может быть, вот только ни у кого кроме тебя он не воспроизводится. И сценарий для того чтобы его воспроизвести ты предоставить не можешь. Статистику по таблице в студию. ... |
|||
:
Нравится:
Не нравится:
|
|||
25.04.2018, 10:01 |
|
Не создаётся первичный ключ
|
|||
---|---|---|---|
#18+
Симонов ДенисСтатистику по таблице в студию. А где её посмотреть? ... |
|||
:
Нравится:
Не нравится:
|
|||
25.04.2018, 10:15 |
|
Не создаётся первичный ключ
|
|||
---|---|---|---|
#18+
Джек, есть такой инструмент gstat Или в IBExpert щёлкаем правой по нужной таблице и в контекстном меню "Получить статистику для выделенных таблиц". У меня есть подозрения что для таблицы просто не собран мусор, потому что к БД есть ещё коннекты с незавершёнными транзакциями. Ну и если там всё норм можно попробовать онлайн валидацию выполнить. Мало ли БД битая ... |
|||
:
Нравится:
Не нравится:
|
|||
25.04.2018, 10:21 |
|
Не создаётся первичный ключ
|
|||
---|---|---|---|
#18+
Вот: Database "/var/lib/firebird/2.5/data/MyDB.fdb" Database header page information: Flags 0 Checksum 12345 Generation 16645848 Page size 16384 ODS version 11.2 Oldest transaction 15300462 Oldest active 15300463 Oldest snapshot 15300463 Next transaction 15368620 Bumped transaction 1 Sequence number 0 Next attachment ID 1192359 Implementation ID 24 Shadow count 0 Page buffers 0 Next header page 0 Database dialect 3 Creation date Aug 28, 2016 15:30:47 Attributes force write Variable header data: Database backup GUID: {6269D5FE-2489-4EE3-0A8F-895A66CF12DB} Sweep interval: 20000 *END* Database file sequence: File /var/lib/firebird/2.5/data/MyDB.fdb is the only file Analyzing database pages ... MYTABLE (197) Primary pointer page: 591, Index root page: 592 Data pages: 1, data page slots: 1, average fill: 14% Fill distribution: 0 - 19% = 1 20 - 39% = 0 40 - 59% = 0 60 - 79% = 0 80 - 99% = 0 ... |
|||
:
Нравится:
Не нравится:
|
|||
25.04.2018, 10:27 |
|
Не создаётся первичный ключ
|
|||
---|---|---|---|
#18+
Симонов ДенисУ меня есть подозрения что для таблицы просто не собран мусор, потому что к БД есть ещё коннекты с незавершёнными транзакциями Действительно может быть это самое, потому что я щас на локальной копии попробовал создать первичный ключ дак всё нормально сработало. ... |
|||
:
Нравится:
Не нравится:
|
|||
25.04.2018, 10:30 |
|
Не создаётся первичный ключ
|
|||
---|---|---|---|
#18+
Джек, повтори сбор статистики с галочкой "Analyze average record and version length" а то информации о версиях не видно ... |
|||
:
Нравится:
Не нравится:
|
|||
25.04.2018, 10:31 |
|
Не создаётся первичный ключ
|
|||
---|---|---|---|
#18+
Джек, тр-ция 15300463 активна уже х\з сколько времени. Найди её и её коннект в мониторинге, скажи спасибо владельцу коннекта и выгони его из БД. ... |
|||
:
Нравится:
Не нравится:
|
|||
25.04.2018, 10:33 |
|
Не создаётся первичный ключ
|
|||
---|---|---|---|
#18+
Джек, попробуй отключить всех пользователей, а лучше перезапусти сервер. Есть такая хрень, FB не даёт сделать первичный ключ. То ли FB держит какой-то кэш? ... |
|||
:
Нравится:
Не нравится:
|
|||
25.04.2018, 10:35 |
|
Не создаётся первичный ключ
|
|||
---|---|---|---|
#18+
KreatorXXI, Какой ещё кэш? Русским по-белому написали, что существуют версии, невидимые Джеку, которые старая транзакция держит. Нет, надо какие-то кэши выдумывать. ... |
|||
:
Нравится:
Не нравится:
|
|||
25.04.2018, 10:39 |
|
Не создаётся первичный ключ
|
|||
---|---|---|---|
#18+
KreatorXXI, это не хрень, а нормальное поведение. Очевидно что эта чудесная таблица раньше была не пуста, и там была запись с ID = null. Потом ТС почистил таблицу через DELETE FROM MyTable, но явно не учёл что другие коннекты имеют незавершённую транзакцию которая читает эту таблицу. ... |
|||
:
Нравится:
Не нравится:
|
|||
25.04.2018, 10:40 |
|
Не создаётся первичный ключ
|
|||
---|---|---|---|
#18+
Симонов Денисповтори сбор статистики с галочкой "Analyze average record and version length" а то информации о версиях не видно Вот: Database "/var/lib/firebird/2.5/data/teko.fdb" Database header page information: Flags 0 Checksum 12345 Generation 16645997 Page size 16384 ODS version 11.2 Oldest transaction 15300462 Oldest active 15300463 Oldest snapshot 15300463 Next transaction 15368752 Bumped transaction 1 Sequence number 0 Next attachment ID 1192374 Implementation ID 24 Shadow count 0 Page buffers 0 Next header page 0 Database dialect 3 Creation date Aug 28, 2016 15:30:47 Attributes force write Variable header data: Database backup GUID: {6269D5FE-2489-4EE3-0A8F-895A66CF12DB} Sweep interval: 20000 *END* Database file sequence: File /var/lib/firebird/2.5/data/teko.fdb is the only file Analyzing database pages ... LUN_EMPLOYEES_CHARGES (197) Primary pointer page: 591, Index root page: 592 Average record length: 0.00, total records: 41 Average version length: 20.73, total versions: 41, max versions: 1 Data pages: 1, data page slots: 1, average fill: 14% Fill distribution: 0 - 19% = 1 20 - 39% = 0 40 - 59% = 0 60 - 79% = 0 80 - 99% = 0 ... |
|||
:
Нравится:
Не нравится:
|
|||
25.04.2018, 10:42 |
|
Не создаётся первичный ключ
|
|||
---|---|---|---|
#18+
Джек, ну вот диагноз полностью подтвердился. ... |
|||
:
Нравится:
Не нравится:
|
|||
25.04.2018, 10:43 |
|
Не создаётся первичный ключ
|
|||
---|---|---|---|
#18+
hvladтр-ция 15300463 активна уже х\з сколько времени. Найди её и её коннект в мониторинге, скажи спасибо владельцу коннекта и выгони его из БД. Зашёл Services->Database Monitoring->Transactions, отфильтровал 15300463 и нажал вверху Shutdown attachment. Из списка она исчезла, но ключ всё равно не создаётся... ... |
|||
:
Нравится:
Не нравится:
|
|||
25.04.2018, 10:47 |
|
Не создаётся первичный ключ
|
|||
---|---|---|---|
#18+
Симонов Денис ну вот диагноз полностью подтвердился. Можете пояснить? ... |
|||
:
Нравится:
Не нравится:
|
|||
25.04.2018, 10:48 |
|
Не создаётся первичный ключ
|
|||
---|---|---|---|
#18+
ДжекСимонов Денис ну вот диагноз полностью подтвердился. Можете пояснить? total records: 41 total versions: 41, max versions: 1 говорит о том что есть заинтересованные версии. Там твой null и закопался. Грохай коннект который держит версии. А лучше все коннекты. Очевидно что с управлением транзакциями в приложении мягко говоря не очень. ... |
|||
:
Нравится:
Не нравится:
|
|||
25.04.2018, 10:54 |
|
Не создаётся первичный ключ
|
|||
---|---|---|---|
#18+
А может такое быть - коннектов уже нет, а незавершённые транзакции всё ещё есть? ... |
|||
:
Нравится:
Не нравится:
|
|||
25.04.2018, 11:06 |
|
Не создаётся первичный ключ
|
|||
---|---|---|---|
#18+
Симонов ДенисГрохай коннект который держит версии. А лучше все коннекты Спасибо. Получилось. Удалил вот это всё: ... Oldest transaction 15300462 Oldest active 15300463 Oldest snapshot 15300463 Next transaction 15368752 ... которое нашлось и получилось. ... |
|||
:
Нравится:
Не нравится:
|
|||
25.04.2018, 11:10 |
|
Не создаётся первичный ключ
|
|||
---|---|---|---|
#18+
Симонов Денисэто не хрень, а нормальное поведение.Это старый баг, ещё от IB http://tracker.firebirdsql.org/browse/CORE-405 ... |
|||
:
Нравится:
Не нравится:
|
|||
25.04.2018, 11:50 |
|
Не создаётся первичный ключ
|
|||
---|---|---|---|
#18+
hvlad, так тикет вроде про коннект с отключенной сборкой мусора. Или там и другие случаи затронуты? В том числе и авторSince indices work outside transaction control, it may be a initial design/implementation pitfall. It appears the index creation and partner lookup code never touches records and hence is unable to determine which versions are actual at the moment of index creation. ... |
|||
:
Нравится:
Не нравится:
|
|||
25.04.2018, 12:06 |
|
|
start [/forum/topic.php?fid=40&msg=39635835&tid=1561140]: |
0ms |
get settings: |
7ms |
get forum list: |
11ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
89ms |
get topic data: |
8ms |
get forum data: |
2ms |
get page messages: |
54ms |
get tp. blocked users: |
1ms |
others: | 13ms |
total: | 191ms |
0 / 0 |