Mysql
CREATE INDEX 與 ALTER TABLE ADD INDEX - MySQLism 還是 SQL Standard?
剛剛遇到一個奇怪的問題,根據我創建索引的方式,需要一個索引名稱。
http://dev.mysql.com/doc/refman/5.5/en/create-index.html
http://dev.mysql.com/doc/refman/5.5/en/alter-table.html
CREATE INDEX `random_name` ON `my_table` (`my_column`); # Requires an index name ALTER TABLE `my_table` ADD INDEX (`my_column`); # Does not require an index name
在我看來, CREATE INDEX 呼叫不應該要求索引名稱。我想知道這是 MySQL 主義還是 SQL 標準?
我認為 SQL 標準根本沒有定義如何創建索引。
來自此維基百科頁面的引用:
標準化
沒有關於創建索引的標準,因為 ISO SQL 標準不涵蓋物理方面。索引是數據庫概念的物理部分之一,例如儲存(表空間或文件組)。RDBMS 供應商都提供了帶有一些特定選項的 CREATE INDEX 語法,這些選項取決於他們提供給客戶的功能。
SQL 標準中沒有關於索引的規定。