【问题标题】:Base crashing on union sql联合 sql 的基础崩溃
【发布时间】:2016-01-14 04:39:33
【问题描述】:

我有 29 个独立的议会地址数据表,具有相同的字段标题和数千个条目。我正在尝试根据应该出现在至少一个表中的属性 id 来查找地址。我一直在尝试使用联合查询;

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

每次我尝试使用此查询并需要恢复时,Base 都会崩溃。有谁知道为什么会这样?

【问题讨论】:

  • 尝试使用 UNION ALL(而不仅仅是“联合”)它不会将结果减少到唯一的行,因此它消耗的资源更少。
  • 错误信息是什么?
  • 你用的是什么引擎?默认是嵌入式 HSQLDB 1.8,这不是一个非常健壮的设置。
  • 大家好。我什至没有收到错误消息,它只是完全退出。我也尝试了 UNION ALL,它仍然在做同样的事情。我正在使用 HSQLDB 1.8,但是除了从 29 个表中查询一行之外,我认为我需要的并不是太复杂。我现在正在考虑尝试构建一个 CASE 语句,它允许我直接转到所需的单个表,这可能是一个更优雅的解决方案。欢迎任何有这方面好例子的人在这里提出!
  • 您确实选择了 Edit→Run SQL Directly 选项,是吗? Base 解析器无法处理 UNION,因此您必须确保绕过解析器并将 SQL 直接发送到后端(在您的情况下为 HSQLDB)。

标签: sql union hsqldb libreoffice-base


【解决方案1】:

请务必使用拆分数据库设置和avoid embedded databases。从链接:

当 文件被“关闭”,最新的内容被重新打包成一个 *Office 的 zip 存档。这种重新包装过程是有问题的,并且 通常会导致文件损坏... 因此,无论何时,最好避免使用这些“嵌入式数据库”文件 可能的。这意味着避免使用名为“创建新 数据库”在 Base 中。

HSQLDB(1.8 或更新的 2.x 版本)应该足够稳定以处理数据。如果需求非常复杂,则可以使用全面的 RDBMS,例如 MySQL。

【讨论】:

    猜你喜欢
    • 2014-01-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-07-13
    • 1970-01-01
    • 1970-01-01
    • 2016-12-03
    相关资源
    最近更新 更多