如果索引不存在则创建索引

时间:2012-02-22 13:20:44

标签: sql indexing advantage-database-server

如果在sql查询中不存在索引,我在使用Advantage数据库服务器创建索引时遇到问题。

我的查询如下:

 If not Exists(<SELECT Query for amount of indizes for one column>) then 
 Create Index Test on Tablename (No); endif

所以我不使用FullTextSearchIndizes,因为它是一个整数字段。其他的看起来像这样:

 If not Exists(SELECT * FROM tablename WHERE CONTAINS( * , 'Test' )) then 
 Create Index Test on Tablename (Name) Content; endif     

所以,我唯一的问题是如何获得指数。我已经在其他DBMS中阅读过您可以使用sys.indexes和其他一些内容。

2 个答案:

答案 0 :(得分:2)

答案 1 :(得分:0)

使用系统命令尝试更多类似的操作。这是我在Advantage Database上使用的工作示例:

IF (SELECT Name FROM system.indexes
   WHERE Index_File_Name = 'GLDept.adi'
   AND Index_Expression = 'DeptNumber') IS NULL
THEN
   EXECUTE PROCEDURE sp_CreateIndex90( 
   'GLDept',
   'GLDept.adi',
   'DEPTNUMBER',
   'DeptNumber',
   '',
   2051,
   512,
   '' );
END IF;