Of course, sorry totally stupid should I recognised that. Thanks Neil
On Wed, Oct 13, 2010 at 3:46 PM, Krishna Chandra Prajapati < prajapat...@gmail.com> wrote: > Hi Neil, > > Yes, primary key is always unique. > > In your case, you are using composite key (players_id,default_teams_id). > > _Krishna > > On Wed, Oct 13, 2010 at 8:07 PM, Tompkins Neil < > neil.tompk...@googlemail.com> wrote: > >> I've the following table. But why isn't the primary key unique, e.g. >> preventing duplicates if entered ? >> >> CREATE TABLE `players_master` ( >> >> `players_id` bigint(20) NOT NULL AUTO_INCREMENT, >> `default_teams_id` bigint(20) NOT NULL, >> `first_name` varchar(100) COLLATE utf8_unicode_ci NOT NULL, >> `second_name` varchar(100) COLLATE utf8_unicode_ci NOT NULL, >> `known_as` varchar(200) COLLATE utf8_unicode_ci DEFAULT NULL, >> `dob` date NOT NULL, >> `countries_id` char(2) COLLATE utf8_unicode_ci NOT NULL, >> `retirement_date` date DEFAULT NULL, >> `positions_id` varchar(3) COLLATE utf8_unicode_ci NOT NULL, >> `estimated_value` double NOT NULL DEFAULT '0', >> `contract_wage` double NOT NULL DEFAULT '0', >> `rating` int(11) NOT NULL, >> PRIMARY KEY (`players_id`,`default_teams_id`), >> KEY `FK_players_master_countries_id` (`countries_id`), >> KEY `FK_players_master_positions_id` (`positions_id`), >> KEY `IDX_first_name` (`first_name`), >> KEY `IDX_known_as` (`known_as`), >> KEY `IDX_second_name` (`second_name`), >> KEY `IDX_dob` (`dob`), >> KEY `IDX_estimated_value` (`estimated_value`), >> KEY `IDX_contract_wage` (`contract_wage`), >> KEY `IDX_rating` (`rating`), >> KEY `FK_players_master_teams_id` (`default_teams_id`), >> CONSTRAINT `FK_players_master_countries_id` FOREIGN KEY (`countries_id`) >> REFERENCES `countries` (`countries_id`) ON DELETE NO ACTION ON UPDATE NO >> ACTION, >> CONSTRAINT `FK_players_master_positions_id` FOREIGN KEY (`positions_id`) >> REFERENCES `positions` (`positions_id`) ON DELETE NO ACTION ON UPDATE NO >> ACTION, >> CONSTRAINT `FK_players_master_teams_id` FOREIGN KEY (`default_teams_id`) >> REFERENCES `teams_master` (`teams_id`) ON DELETE NO ACTION ON UPDATE NO >> ACTION >> ) ENGINE=InnoDB AUTO_INCREMENT=1001 DEFAULT CHARSET=utf8 >> COLLATE=utf8_unicode_ci >> >> I'm confused, I thought primary keys were always unique ? >> >> Cheers >> Neil >> > >