使用外键更改表

时间:2011-04-18 15:26:14

标签: mysql sql foreign-keys alter

我有三张桌子。

Person (id, FirstName, LastName, BirthDate)
Contact (id, contact, type)
PersonContact( Person_id, Contact_id )

正如您可以看到Person_id来自PersonContact表中的Person表 Contact_id来自PersonContact表中的Contact表

我想编写一个查询,该查询应该将PersonContact表的Person_id列与Person Table的id列关联为外键。

PersonContact的Contact_id列和Contact表的id列作为外键

3 个答案:

答案 0 :(得分:3)

这应该回答问题

CREATE TABLE IF NOT EXISTS `person_contact` (
  `contact_id` int(11) NOT NULL,
  `person_id` int(11) NOT NULL,
  PRIMARY KEY (`contact_id`,`person_id`)
) ENGINE=InnoDB  DEFAULT CHARSET=latin1;


ALTER TABLE `person_contact`
  ADD CONSTRAINT `person_contact_ibfk_2` FOREIGN KEY (`person_id`) REFERENCES `person` (`id`),
  ADD CONSTRAINT `person_contact_ibfk_1` FOREIGN KEY (`contact_id`) REFERENCES `contact` (`id`);

答案 1 :(得分:0)

http://dev.mysql.com/doc/refman/5.1/en/alter-table.html

alter PersonContact add foreign key(PersonID) references Person(ID)

要选择,您可以:

select *
    from Person
        inner join PersonContact on(Person.ID=PersonContact.PersonID)

答案 2 :(得分:0)

这是我在T-SQL

方面的价值0.02美元的建议

选择FirstName,LastName,BirthDate 来自Person p 加入PersonContact pc ON p.id = pc.Person_id

选择联系人,键入 来自联系方式c 加入PersonContact pc ON c.id = pc.Person_id