You are on page 1of 2

Usingmysqlitispossibletohavetwoidenticalindexesoverthesamecolums

mysql>createtableT1(idint,col1varchar(2));
QueryOK,0rowsaffected(0.09sec)
mysql>insertintoT1values(1,'aa'),(2,'bb'),(3,'ff');
QueryOK,3rowsaffected(0.00sec)
Records:3Duplicates:0Warnings:0
mysql>select*fromT1;
+++
|id|col1|
+++
|1|aa|
|2|bb|
|3|ff|
+++
3rowsinset(0.00sec)
mysql>createindexidx1onT1(id);
QueryOK,3rowsaffected(0.04sec)
Records:3Duplicates:0Warnings:0
mysql>SHOWINDEXFROMT1;
+++++++++++++
|Table|Non_unique|Key_name|Seq_in_index|Column_name|Collation|Cardinality|Sub_part|Packed|
Null|Index_type|Comment|
+++++++++++++
|T1|1|idx1|1|id|A|NULL|NULL|NULL|YES|BTREE||
+++++++++++++
1rowinset(0.00sec)
mysql>showcreatetableT1\G
***************************1.row***************************
Table:T1
CreateTable:CREATETABLE`T1`(
`id`int(11)defaultNULL,
`col1`varchar(2)defaultNULL,
KEY`idx1`(`id`)
)ENGINE=MyISAMDEFAULTCHARSET=latin1
1rowinset(0.00sec)
mysql>createindexidx2onT1(id);
QueryOK,3rowsaffected(0.00sec)
Records:3Duplicates:0Warnings:0
mysql>showcreatetableT1\G
***************************1.row***************************
Table:T1
CreateTable:CREATETABLE`T1`(
`id`int(11)defaultNULL,
`col1`varchar(2)defaultNULL,
KEY`idx1`(`id`),
KEY`idx2`(`id`)

)ENGINE=MyISAMDEFAULTCHARSET=latin1
1rowinset(0.00sec)
mysql>SHOWINDEXFROMT1;
+++++++++++++
|Table|Non_unique|Key_name|Seq_in_index|Column_name|Collation|Cardinality|Sub_part|Packed|
Null|Index_type|Comment|
+++++++++++++
|T1|1|idx1|1|id|A|NULL|NULL|NULL|YES|BTREE||
|T1|1|idx2|1|id|A|NULL|NULL|NULL|YES|BTREE||
+++++++++++++
2rowsinset(0.00sec)
mysql>
Nowwehave2identicalindexesoverthesamecolumn(notpossiblewithOracle)
Theforeignkey,inthesameway,usesaindextoforcetheirreference:
mysql>createtableT2(idint,foreignkey(id)referencesT1(id))engine=InnoDb;
QueryOK,0rowsaffected(0.06sec)
mysql>showindexfromT2;
+++++++++++++
|Table|Non_unique|Key_name|Seq_in_index|Column_name|Collation|Cardinality|Sub_part|Packed|
Null|Index_type|Comment|
+++++++++++++
|T2|1|id|1|id|A|0|NULL|NULL|YES|BTREE||
+++++++++++++
1rowinset(0.00sec)
mysql>showcreatetableT2\G
***************************1.row***************************
Table:T2
CreateTable:CREATETABLE`T2`(
`id`int(11)defaultNULL,
KEY`id`(`id`),
CONSTRAINT`t2_ibfk_1`FOREIGNKEY(`id`)REFERENCES`T1`(`id`)
)ENGINE=InnoDBDEFAULTCHARSET=latin1
1rowinset(0.00sec)

You might also like