On 07.12.2011 15:07, Przemysław Backiel wrote:
mysql> SHOW INDEX FROM customerassignments;
+---------------------+------------+-----------------+--------------+-----------------+-----------+-------------+----------+--------+------+------------+---------+---------------+ | Table | Non_unique | Key_name | Seq_in_index | Column_name | Collation | Cardinality | Sub_part | Packed | Null | Index_type | Comment | Index_comment |
+---------------------+------------+-----------------+--------------+-----------------+-----------+-------------+----------+--------+------+------------+---------+---------------+ | customerassignments | 0 | PRIMARY | 1 | id | A | 2 | NULL | NULL | | BTREE | | | | customerassignments | 0 | customergroupid | 1 | customergroupid | A | 2 | NULL | NULL | | BTREE | | | | customerassignments | 0 | customergroupid | 2 | customerid | A | 2 | NULL | NULL | | BTREE | | | | customerassignments | 1 | customer_idx | 1 | customerid | A | 14 | NULL | NULL | | BTREE | | |
+---------------------+------------+-----------------+--------------+-----------------+-----------+-------------+----------+--------+------+------------+---------+---------------+ 4 rows in set (0.00 sec)
Wygląda na to, że MySQL 5.5 sam sobie zezwala na nadawanie nazw indeksów takich jak nazwy pól (2 i 3 wpis odpowiada kluczom obcym tworzonym bez podawania nazwy klucza), ale już jak jawnie podamy nazwę indeksu taką samą jak jedno z pól to mamy lipę. Najlepiej byłoby, żebyśmy indeksy tabelach miały postać: pole_idx, np. customerid_idx.
Tylko co teraz zrobić w przypadku osób, które mają już stare nazwy indeksów dotychczas utworzone, a w przyszłości będziemy chcieli je np. usunąć...