mysql innodb foreign key on 2 fields ?
1 отговора
230 прегледа
mysql innodb foreign key on 2 fields ?
нещо не ми е ясно как трябва да стане следното нещо
table1
id - auto_increment|primary
table2
id - auto_increment|primary
table3
id1,id2
в table3 искам да има уникален ключ върху 2те полета като id1 е id от table1 а id2 е id от table2, ама нещо или аз съм тъп или нещо не разбирам ... все имам някаква грешка 150 от mysql ... някой ще подскаже ли синтаксиса за създаване на подобна таблица с такъв ключ?
Moscow, раз-два-три, Moscow, посмотри.
table1
id - auto_increment|primary
table2
id - auto_increment|primary
table3
id1,id2
в table3 искам да има уникален ключ върху 2те полета като id1 е id от table1 а id2 е id от table2, ама нещо или аз съм тъп или нещо не разбирам ... все имам някаква грешка 150 от mysql ... някой ще подскаже ли синтаксиса за създаване на подобна таблица с такъв ключ?
Moscow, раз-два-три, Moscow, посмотри.
Re: mysql innodb foreign key on 2 fields ?
mysql> show create table t3;
CREATE TABLE `t3` (
`id` int(11) NOT NULL auto_increment,
`t1_id` int(11) NOT NULL default '0',
`t2_id` int(11) NOT NULL default '0',
PRIMARY KEY (`id`),
UNIQUE KEY `t1_id` (`t1_id`,`t2_id`),
KEY `t2_id` (`t2_id`),
CONSTRAINT `t3_ibfk_1` FOREIGN KEY (`t2_id`) REFERENCES `t2` (`id`),
CONSTRAINT `t3_ibfk_2` FOREIGN KEY (`t1_id`) REFERENCES `t1` (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8
salle.online.bg/sig
CREATE TABLE `t3` (
`id` int(11) NOT NULL auto_increment,
`t1_id` int(11) NOT NULL default '0',
`t2_id` int(11) NOT NULL default '0',
PRIMARY KEY (`id`),
UNIQUE KEY `t1_id` (`t1_id`,`t2_id`),
KEY `t2_id` (`t2_id`),
CONSTRAINT `t3_ibfk_1` FOREIGN KEY (`t2_id`) REFERENCES `t2` (`id`),
CONSTRAINT `t3_ibfk_2` FOREIGN KEY (`t1_id`) REFERENCES `t1` (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8
salle.online.bg/sig
Редактирано от salle на