Firebird 1.5:表中的重复列

Firebird 1.5:表中的重复列,firebird,firebird1.5,Firebird,Firebird1.5,我注意到Firebird为单个表创建了重复的列,因此在查询中使用了不正确的索引,这导致查询速度变慢。请举例如下 我有两个表具有相同的列和索引,但在检查表结构时,一个表显示重复的列 Table A : Name VARCHAR(30) Age INTEGER BIRTH_DATE TIMESTAMP Indices : Name, Birth_date (Asc), Birth_date(Desc) Table B : Name V

我注意到Firebird为单个表创建了重复的列,因此在查询中使用了不正确的索引,这导致查询速度变慢。请举例如下

我有两个表具有相同的列和索引,但在检查表结构时,一个表显示重复的列

Table A : Name VARCHAR(30)
          Age  INTEGER
          BIRTH_DATE TIMESTAMP

          Indices : Name, Birth_date (Asc), Birth_date(Desc)

Table B : Name VARCHAR(30)
          Age  INTEGER
          BIRTH_DATE TIMESTAMP   
          Name VARCHAR(30)
          Age  INTEGER
          BIRTH_DATE TIMESTAMP   

          Indices : Name, Birth_date (Asc), Birth_date(Desc)
将表与表C和order by Birth_date联接时,表A使用的是Ordered的Birth_date索引,但表B不使用


请帮忙!这背后的原因是什么?谢谢。

我刚才遇到一个问题,允许创建重复列。此请求

SELECT a.RDB$FIELD_NAME
FROM RDB$RELATION_FIELDS a
WHERE a.RDB$FIELD_NAME like '%COLUMN_NAME%'
显示了两行列名。通过将字段复制粘贴到其他位置,很明显一列有尾随空格,而另一列有回车+换行符(CRLF),然后是尾随空格

使用FlameRobin向导创建列。我的看法是使用了复制粘贴并插入了CRLF。Excel和其他软件可以做到这一点。不过,FlameRobin、FlameRobin的司机和FireBird都应该警惕这一点


我们创建了一些DDL,在列名中包含了有问题的CRLF,从而删除了有问题的列。

我遇到了一个问题,允许创建一个重复的列。此请求

SELECT a.RDB$FIELD_NAME
FROM RDB$RELATION_FIELDS a
WHERE a.RDB$FIELD_NAME like '%COLUMN_NAME%'
显示了两行列名。通过将字段复制粘贴到其他位置,很明显一列有尾随空格,而另一列有回车+换行符(CRLF),然后是尾随空格

使用FlameRobin向导创建列。我的看法是使用了复制粘贴并插入了CRLF。Excel和其他软件可以做到这一点。不过,FlameRobin、FlameRobin的司机和FireBird都应该警惕这一点


我们创建了一些DDL,在列名中包含了有问题的CRLF,从而删除了有问题的列。

表的实际DDL是什么?不可能创建两个同名(和大小写)的列。@MarkRotterVeel,是的,不可能在一个表中创建两个同名的列,但可以在不同的表中创建相同的列,问题是如果两个表具有相同的列,当我在squirrel(Firebird的IDE)中查看DDL时,其中一个会有重复的列。这也可能是Jaybird元数据查询中的一个错误,您是否可以创建一个描述问题、复制步骤、实际DDL和数据库副本(或备份)的记录单?表的实际DDL是什么?不可能创建两个同名(和大小写)的列。@MarkRotterVeel,是的,不可能在一个表中创建两个同名的列,但可以在不同的表中创建相同的列,问题是如果两个表具有相同的列,当我在squirrel(Firebird的IDE)中查看DDL时,其中一个会有重复的列。这也可能是Jaybird元数据查询中的一个错误,您能否创建一个描述问题、复制步骤、实际DDL和数据库副本(或备份)的记录单?