what is called KEY
CREATE TABLE `ost_staff` (
`staff_id` int(11) unsigned NOT NULL auto_increment,
`group_id` int(10) unsigned NOT NULL default '0',
`dept_id` int(10) unsigned NOT NULL default '0',
`username` varchar(32) collate latin1_german2_ci NOT NULL default '',
`firstname` varchar(32) collate latin1_german2_ci default NULL,
`lastname` varchar(32) collate latin1_german2_ci default NULL,
`passwd` varchar(128) collate latin1_german2_ci default NULL,
`email` varchar(128) collate latin1_german2_ci default NULL,
`phone` varchar(24) collate latin1_german2_ci NOT NULL default '',
`phone_ext` varchar(6) collate latin1_german2_ci default NULL,
`mobile` varchar(24) collate latin1_german2_ci NOT NULL default '',
`signature` varchar(255) collate latin1_german2_ci NOT NULL default '',
`isactive` tinyint(1) NOT NULL default '1',
`isadmin` tinyint(1) NOT NULL default '0',
`isvisible` tinyint(1) unsigned NOT NULL default '1',
`onvacation` tinyint(1) unsigned NOT NULL default '0',
`daylight_saving` tinyint(1) unsigned NOT NULL default '0',
`append_signature` tinyint(1) unsigned NOT NULL default '0',
`change_passwd` tinyint(1) unsigned NOT NULL default '0',
`timezone_offset` float(3,1) NOT NU开发者_Python百科LL default '0.0',
`max_page_size` int(11) NOT NULL default '0',
`created` datetime NOT NULL default '0000-00-00 00:00:00',
`lastlogin` datetime default NULL,
`updated` datetime NOT NULL default '0000-00-00 00:00:00',
PRIMARY KEY (`staff_id`),
UNIQUE KEY `username` (`username`),
KEY `dept_id` (`dept_id`),
KEY `issuperuser` (`isadmin`),
KEY `group_id` (`group_id`,`staff_id`)
) ENGINE=MyISAM AUTO_INCREMENT=35 DEFAULT CHARSET=latin1 COLLATE=latin1_german2_ci;
Hi the above query is the osticket open source one, i know primary key , foreign key , unique but AM NOT SURE WHAT IS THIS
KEY
group_id
(group_id
,staff_id
)
Please tell me, this constraints name....
It's a synonym of INDEX
It's a Index combining the two columns group_id and staff_id but is referred to as group_id. Think of it as a Unique Identifier, but MySQL does not enforce that column to be unique. Also, the way the db will check this key will be in the order of group_id and then staff_id, not the other way around, so make sure your queries reflect that (i.e. doing an order for staff_id alone will not be faster than doing an order by group_id and then staff_id).
If you're asking about the **, those mean nothing in MySQL.
Just saw Bozho's comment, that link should be sufficient.
精彩评论