2016-01-14 1 views
0

У меня есть 29 отдельных таблиц данных адреса совета с одинаковыми заголовками полей и тысячами записей. Я пытаюсь найти адрес на основе идентификатора свойства, который должен появиться хотя бы в одной из таблиц. Я пытаюсь использовать запрос объединения;Базовый сбой на соединении sql

SELECT "ST_NO_FROM","STREET","ST_TYPE" 
FROM "list_address_points_break_o_day" 
WHERE "PID" = 6413877 
UNION 
SELECT "ST_NO_FROM","STREET","ST_TYPE" 
FROM "list_address_points_brighton" 
WHERE "PID" = 6413877 

База разбивается каждый раз, когда я пытаюсь использовать этот запрос и требует восстановления. Кто-нибудь знает, почему это происходит?

+1

Попробуйте использовать ** UNION ALL ** (вместо просто «union») он не уменьшает результат до уникальных строк и поэтому потребляет меньше ресурсов. –

+0

Что такое сообщение об ошибке? – StanislavL

+0

Какой двигатель вы используете? По умолчанию встроен HSQLDB 1.8, который не является очень надежной настройкой. –

ответ

1

Обязательно используйте настройку разделенной базы данных и avoid embedded databases. По этой ссылке:

Когда файл будет «закрыт» последние содержимое переупаковывается в единый почтовых-архив от * Office. Этот процесс переупаковки является проблематичным, и обычно приводит к повреждению файлов ... Так что лучше избегать этих файлов «встроенной базы данных», когда возможно . Это означает, что мастер избегает «Создать новую базу данных » в базе.

HSQLDB (версия 1.8 или более новая версия 2.x) должна быть достаточно стабильной, чтобы обрабатывать данные. Если потребности очень сложны, вместо этого можно использовать полномасштабную СУБД, такую ​​как MySQL.