Таблица hsqldb не пуста после того, как была очищена, а затем снова подключена к - PullRequest
0 голосов
/ 03 апреля 2011

Вставив некоторые данные и выполнив несколько запросов, я решил удалить данные из таблицы.Однако, когда я запустил оба

TRUNCATE TABLE Mytable

и

DELETE FROM Mytable

, при следующем подключении к базе данных этопусто, а запросы возвращают результаты.Это продолжалось даже после того, как я удалил папку базы данных.Следует отметить, что запросы к таблице, которые выполняются сразу после truncatre или delete, не возвращают результатов, как и должно быть.

Ответы [ 2 ]

1 голос
/ 03 апреля 2011

Вы делаете явный close () для соединения?

HSQLDB имеет текстовый формат для операций журналирования и воссоздает состояние базы данных после перезапуска выполнения этого файла. Если вы не разрешите чистому закрытию БД, конечные команды могут не записываться в файл и не будут выполняться снова при повторном подключении.

Вы можете просмотреть файл сценария базы данных (* .script) после отключения и посмотреть, записаны ли ваши команды.

1 голос
/ 03 апреля 2011

Я подозреваю, что поведение базы данных по умолчанию отключено при автоматической фиксации, и вы работаете в рамках неявной транзакции.Когда вы отключаетесь, все, что вы только что сделали, не записывается в БД (ROLLBACK произошло).

Перед закрытием соединения вы должны ввести COMMIT.Это завершает ваши изменения в базе данных.

...