Если я использую
$ sqlite3 fileName
sqlite> .s
sqlite>_
и файл с именем fileName отсутствует, sqlite3 создает новую пустую базу данных. Есть ли способ избежать этого? В идеале я хотел бы повторить попытку несколько раз, если файл не найден, а затем вывести сообщение об ошибке. Примерно так:
$ sqlite3 --failIfNoSuchFile --retry 3 fileName
sqlite> No such file, retrying ...
sqlite> No such file, retrying ...
sqlite> No such file, retrying ...
sqlite> Aborting...
Error: No file named fileName
$_
Возможно ли что-то подобное?
Причина, по которой я спрашиваю, заключается в том, что существующая у нас база данных была раздавлена и заменена этой новой пустой базой данных только потому, что проблема с сетью помешала sqlite3 найти файл, но не помешала ему создать новую пустую ( и давящий старый)! По крайней мере, это наиболее вероятная теория, которую мы придумали, чтобы объяснить внезапную пустоту базы данных (даже структура пропала, .s
ничего не возвращала и размер файла был 0)
Есть идеи?
Кстати, в реальном контексте сценарий tcl подключается к базе данных и вставляет данные. Проблема возникла как ошибка «таблица не найдена», и мы обнаружили, что файл базы данных был пуст ..