Je viens de rencontrer un problème étrange, selon lequel, selon la façon dont je crée un index, un nom d'index est requis.
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
Il me semble que l'appel CREATE INDEX ne devrait pas rendre le nom d'index requis. Je me demande s'il s'agit d'un MySQLism ou d'un standard SQL?
Je ne pense pas que le standard SQL définit comment pour créer des index pas du tout.
Une citation de cette page Wikipedia :
Standardisation
Il n'y a pas de norme sur la création d'index car la norme ISO SQL ne couvre pas les aspects physiques. Les index sont l'une des parties physiques de la conception d'une base de données, entre autres, comme le stockage (tablespace ou groupes de fichiers). Les fournisseurs de SGBDR donnent tous une syntaxe CREATE INDEX avec certaines options spécifiques qui dépendent des fonctionnalités qu'ils fournissent aux clients.
Le manuel Postgres semble le supporter ici:
Il n'y a aucune disposition pour les index dans la norme SQL.