2016-03-10 79 views
0

我在oracle中查詢爲 「CREATE INDEX index_i1 ON test(nvl(id,0));」從oracle到mysql的索引轉換

如果正在轉換到這一點的MySQL 「上測試創建索引index_i1(IFNULL(數據,0));」我得到語法錯誤使用附近ID

什麼是正確的方式來轉換這。 感謝 SKP

+0

我認爲你需要添加一個存儲生成的'ifnull(data,0)'列並索引它。 http://mysqlserverteam.com/generated-columns-in-mysql-5-7-5/ *只有存儲的生成列可以是索引的一部分* –

回答

0

這句法在MySQL

CREATE [UNIQUE|FULLTEXT|SPATIAL] INDEX index_name 
     [index_type] 
     ON tbl_name (index_col_name,...) 
     [index_option] 
     [algorithm_option | lock_option] ... 

    index_col_name: 
     col_name [(length)] [ASC | DESC] 

    index_type: 
     USING {BTREE | HASH} 

    index_option: 
     KEY_BLOCK_SIZE [=] value 
     | index_type 
     | WITH PARSER parser_name 
     | COMMENT 'string' 

    algorithm_option: 
     ALGORITHM [=] {DEFAULT|INPLACE|COPY} 

    lock_option: 
     LOCK [=] {DEFAULT|NONE|SHARED|EXCLUSIVE} 

創建索引。例如:

CREATE INDEX part_of_name ON customer (name(10)); 

NAME是列名在這兒,你要添加索引

Official site

這是您的語句:

create index index_i1 on test(data); 

我認爲測試是表名,data是列名。您可以在表結構創建時設置數據的默認值。