如果在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
和其他一些内容。
答案 0 :(得分:2)
看一下系统表:
https://devzone.advantagedatabase.com/dz/webhelp/Advantage10/devguide_system_tables.htm
特别是有一个名为system.indexes
的表:
https://devzone.advantagedatabase.com/dz/webhelp/Advantage10/master_system_indexes.htm
答案 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;