Paradox 的 CREATE INDEX

ODBC Paradox 驱动程序的 CREATE INDEX 语句的语法为:

CREATE [UNIQUE] INDEX index-name

ON 表名

列标识符 [ASC]

[ 列标识符 [ASC]...]

ODBC Paradox 驱动程序不支持 ODBC SQL 语法中用于 CREATE INDEX 语句的 DESC 关键字。 表名参数可以指定表的完整路径。

如果指定关键字 UNIQUE,ODBC Paradox 驱动程序将创建唯一索引。 第一个唯一索引创建为主索引。 这是一个名为 表名.PX 的主键文件。 主索引受以下限制约束:

  • 必须先创建主索引,然后才能将任何行添加到表中。

  • 必须在表中的第一个 "n" 列上定义主索引。

  • 每个表只允许有一个主索引。

  • 如果表中未定义主索引,则 Paradox 驱动程序无法更新该表。 (请注意,对于空表来说并非如此,即使表中未定义唯一索引,也可以更新该表。)

  • 根据 Paradox 的要求,主索引的索引名参数必须与表的基本名称相同。

如果省略关键字 UNIQUE,ODBC Paradox 驱动程序将创建非唯一索引。 此项包含两个名为表名.Xnn表名.Ynn,的 Paradox 辅助索引文件,其中 nn 是表中的列号。 非唯一索引受以下限制约束:

  • 为表创建非唯一索引之前,该表必须存在主索引。

  • 对于 Paradox 3.x,主索引(唯一或非唯一)以外的任何索引的索引名参数必须与列名相同。 对于 Paradox 4.x 和 5.x,此类索引的名称可以但并非必须与列名相同。

  • 只能为非唯一索引指定一列。

在表中定义索引后,无法添加列。 如果 CREATE TABLE 语句参数列表的第一列创建索引,则参数列表中不能包含第二列。

例如,要使用销售订单号和行号列作为 SO_LINES 表的唯一索引,请使用以下语句:

CREATE UNIQUE INDEX SO_LINES  
 ON SO_LINES (SONum, LineNum)  

要将商品编号列用作 SO_LINES 表的非唯一索引,请使用以下语句:

CREATE INDEX PartNum  
 ON SO_LINES (PartNum)  

请注意,执行两条 CREATE INDEX 语句时,第一条语句将始终创建与表同名的主索引,第二条语句将始终创建与列同名的非唯一索引。 即使 CREATE INDEX 语句中输入了不同的名称,即使索引在第二条 CREATE INDEX 语句中标记为 UNIQUE,这些索引也会以这种方式命名。

注意

使用 Paradox 驱动程序而不实施 Borland 数据库引擎时,只允许读取和追加语句。