Удаление неверных ссылок
Ключ
 
-df
Описание

Задает удаление неверных ссылок. Используется только с ключом -s.

Ссылка считается неверной, если некоторый столбец (например, А) ссылается на значения другого столбца (например, В) в этой же или другой таблице БД, однако значение некоторой строки столбца А отсутствует среди значений столбца В.

Удаление неверных ссылок выполняется по следующим правилам:

  • если ссылающийся столбец допускает NULL-значение, то неверное значение ссылки заменяется NULL-значением;

  • если ссылающийся столбец не допускает NULL-значение, то удаляется вся строка таблицы;

  • если в удаленной строке таблицы имелся столбец, на который есть ссылка из другой таблицы, то в результате порождается новая неверная ссылка. Эта ситуация не диагностируется, поэтому для полного устранения неверных ссылок необходимо повторять тестирование БД с ключом -df до тех пор, пока testdb покажет отсутствие неверных ссылок.

Примеры
Тестирование неверных ссылок с выдачей протокола тестирования на консоль:
testdb /usr/linter/db -r -df

Тестирование неверных ссылок с последующей заменой на NULL-значение:
testdb /usr/linter/db -r -df -s /usr/linter/rest_db/restore.sql

Выполнение SQL-скрипта для корректировки неверных ссылок:
inl -u SYSTEM/MANAGER8 _/usr/linter/rest_db/restore.sql

Примечания

  1. Ключи -df, -dr, -ds могут использоваться как тестирующие и восстанавливающие. Тестирующие только выдают соответствующее сообщение, восстанавливающие вносят изменения в базу, в основном работают в паре с ключом -r.

  2. Утилита testdb не будет работать, если перед восстанавливающими ключами не будет указан ключ -r. Исключения составили -dn, -dz, -df, не требующие наличия -r, -df – с ключом -s.