【发布时间】:2016-05-20 02:20:41
【问题描述】:
我有 2 个不同的表:Profile 和 Transaction
个人资料包括:pID、名字、姓氏、电话号码
交易包括:transID、sellerID、buyerID、itemID
我的问题是:
如何确保 sellerID 和 buyerID 都作为外键引用 Profile 表中的 profileID?
我现在的代码:
CREATE TABLE PROFILE
(
pID INT NOT NULL AUTO_INCREMENT ,
firstName VARCHAR(20) NOT NULL ,
lastName INT(20) NOT NULL ,
phoneNumb INT NOT NULL ,
PRIMARY KEY (pID)
) ENGINE = InnoDB DEFAULT CHARSET=latin1;
CREATE TABLE TRANSACTION
(
tID INT NOT NULL AUTO_INCREMENT ,
sellerID INT ,
buyerID INT,
itemID INT,
PRIMARY KEY (tID),
FOREIGN KEY (sellerID, buyerID) REFERENCES PROFILE(pID),
FOREIGN KEY (itemID) REFERENCES ITEM (itemID)
) ENGINE = InnoDB DEFAULT CHARSET=latin1;
我试过这个,它给了我这种错误
1239 - 'foreign key without name' 的外键定义不正确:键引用和表引用不匹配
谢谢。
【问题讨论】:
-
为什么你的
lastName字段是INT?