powered by simpleCommunicator - 2.0.51     © 2025 Programmizd 02
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / Не создаётся первичный ключ
25 сообщений из 51, страница 2 из 3
Не создаётся первичный ключ
    #39635803
Джек
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Добрый день всем!
Сейчас просто не могу создать первичный ключ для таблицы.
Выдаётся та же ошибка:
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 ***".
Непонятно что и куда он пытается вставить?
...
Рейтинг: 0 / 0
Не создаётся первичный ключ
    #39635819
hvlad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Не смотри на insert, смотри на нуллы
Джекcolumn definition includes validation constraints.
validation error for column ID, value "*** null ***".
...
Рейтинг: 0 / 0
Не создаётся первичный ключ
    #39635824
Джек
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hvladНе смотри на insert, смотри на нуллы

Куда смотреть?
Вот так столбец определён в структцре таблицы:
ID P_KEY NOT NULL /* P_KEY = INTEGER NOT NULL */
.
Таблица пустая.
...
Рейтинг: 0 / 0
Не создаётся первичный ключ
    #39635831
hvlad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ДжекТаблица пустая.Значит не пустая.
...
Рейтинг: 0 / 0
Не создаётся первичный ключ
    #39635835
Джек
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hvlad Значит не пустая.
IBExpert показывает 0 записей.
Кроме этого я делал Empty table, потом Commit Transaction, переконнетивался...
Ничего не помогло.
По-моему, тут явно какой-то глюк файербёрда.
...
Рейтинг: 0 / 0
Не создаётся первичный ключ
    #39635836
Джек
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...запрос:
select count(*) from MyTable
тоже выдаёт 0 записей...
...
Рейтинг: 0 / 0
Не создаётся первичный ключ
    #39635840
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Джек,

может быть, вот только ни у кого кроме тебя он не воспроизводится. И сценарий для того чтобы его воспроизвести ты предоставить не можешь.

Статистику по таблице в студию.
...
Рейтинг: 0 / 0
Не создаётся первичный ключ
    #39635854
Джек
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Симонов ДенисСтатистику по таблице в студию.
А где её посмотреть?
...
Рейтинг: 0 / 0
Не создаётся первичный ключ
    #39635858
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Джек,

есть такой инструмент gstat
Или в IBExpert щёлкаем правой по нужной таблице и в контекстном меню "Получить статистику для выделенных таблиц".
У меня есть подозрения что для таблицы просто не собран мусор, потому что к БД есть ещё коннекты с незавершёнными транзакциями. Ну и если там всё норм можно попробовать онлайн валидацию выполнить. Мало ли БД битая
...
Рейтинг: 0 / 0
Не создаётся первичный ключ
    #39635863
Джек
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вот:


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
...
Рейтинг: 0 / 0
Не создаётся первичный ключ
    #39635865
Джек
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Симонов ДенисУ меня есть подозрения что для таблицы просто не собран мусор, потому что к БД есть ещё коннекты с незавершёнными транзакциями
Действительно может быть это самое, потому что я щас на локальной копии попробовал создать первичный ключ дак всё нормально сработало.
...
Рейтинг: 0 / 0
Не создаётся первичный ключ
    #39635868
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Джек,

повтори сбор статистики с галочкой "Analyze average record and version length" а то информации о версиях не видно
...
Рейтинг: 0 / 0
Не создаётся первичный ключ
    #39635871
hvlad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Джек,

тр-ция 15300463 активна уже х\з сколько времени.
Найди её и её коннект в мониторинге, скажи спасибо владельцу коннекта и выгони его из БД.
...
Рейтинг: 0 / 0
Не создаётся первичный ключ
    #39635872
KreatorXXI
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Джек,

попробуй отключить всех пользователей, а лучше перезапусти сервер. Есть такая хрень, FB не даёт сделать первичный ключ. То ли FB держит какой-то кэш?
...
Рейтинг: 0 / 0
Не создаётся первичный ключ
    #39635876
WildSery
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
KreatorXXI,

Какой ещё кэш?
Русским по-белому написали, что существуют версии, невидимые Джеку, которые старая транзакция держит.
Нет, надо какие-то кэши выдумывать.
...
Рейтинг: 0 / 0
Не создаётся первичный ключ
    #39635879
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
KreatorXXI,

это не хрень, а нормальное поведение. Очевидно что эта чудесная таблица раньше была не пуста, и там была запись с ID = null. Потом ТС почистил таблицу через DELETE FROM MyTable, но явно не учёл что другие коннекты имеют незавершённую транзакцию которая читает эту таблицу.
...
Рейтинг: 0 / 0
Не создаётся первичный ключ
    #39635881
Джек
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Симонов Денисповтори сбор статистики с галочкой "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
...
Рейтинг: 0 / 0
Не создаётся первичный ключ
    #39635882
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Джек,

ну вот диагноз полностью подтвердился.
...
Рейтинг: 0 / 0
Не создаётся первичный ключ
    #39635884
Джек
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hvladтр-ция 15300463 активна уже х\з сколько времени.
Найди её и её коннект в мониторинге, скажи спасибо владельцу коннекта и выгони его из БД.
Зашёл Services->Database Monitoring->Transactions, отфильтровал 15300463 и нажал вверху Shutdown attachment.
Из списка она исчезла, но ключ всё равно не создаётся...
...
Рейтинг: 0 / 0
Не создаётся первичный ключ
    #39635885
Джек
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Симонов Денис ну вот диагноз полностью подтвердился.
Можете пояснить?
...
Рейтинг: 0 / 0
Не создаётся первичный ключ
    #39635889
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ДжекСимонов Денис ну вот диагноз полностью подтвердился.
Можете пояснить?

total records: 41
total versions: 41, max versions: 1

говорит о том что есть заинтересованные версии. Там твой null и закопался. Грохай коннект который держит версии. А лучше все коннекты. Очевидно что с управлением транзакциями в приложении мягко говоря не очень.
...
Рейтинг: 0 / 0
Не создаётся первичный ключ
    #39635895
KreatorXXI
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А может такое быть - коннектов уже нет, а незавершённые транзакции всё ещё есть?
...
Рейтинг: 0 / 0
Не создаётся первичный ключ
    #39635898
Джек
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Симонов ДенисГрохай коннект который держит версии. А лучше все коннекты
Спасибо. Получилось.
Удалил вот это всё:
...
Oldest transaction 15300462
Oldest active 15300463
Oldest snapshot 15300463
Next transaction 15368752
...
которое нашлось и получилось.
...
Рейтинг: 0 / 0
Не создаётся первичный ключ
    #39635933
hvlad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Симонов Денисэто не хрень, а нормальное поведение.Это старый баг, ещё от IB
http://tracker.firebirdsql.org/browse/CORE-405
...
Рейтинг: 0 / 0
Не создаётся первичный ключ
    #39635948
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
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.
...
Рейтинг: 0 / 0
25 сообщений из 51, страница 2 из 3
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / Не создаётся первичный ключ
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]