想要将外键定义为mysql数据库表中主键的一部分

问题描述 投票:0回答:1

有我的疑问。为什么我会出错?

CREATE TABLE researcher(
    RID INT AUTO_INCREMENT,
    FIRST_NAME VARCHAR(30),
    LAST_NAME VARCHAR(30),
    COUNTRY VARCHAR(30),
    WORKING_YEAR INT,
    Experience INT DEFAULT 0,
    CURRENT_WORK VARCHAR(30) DEFAULT "no entry",
    CONSTRAINT con1 PRIMARY KEY(RID)
)

然后

CREATE TABLE IF NOT EXISTS reviews
(
    RID INT,
    REVIEW_ID INT AUTO_INCREMENT,
    REVIEW_TIME TIMESTAMP DEFAULT "0000-00-00 00:00:00",
    CONSTRAINT for3 FOREIGN KEY(RID) REFERENCES researcher(RID),
    CONSTRAINT con5 PRIMARY KEY(RID, REVIEW_ID)
 )

然后MySQL说:

#1075 - Incorrect table definition; there can be only one auto column and it must be defined as a key

我的错在哪里?

mysql foreign-keys primary-key
1个回答
0
投票

如果使用AUTO_INCREMENT,则需要在其上提供主键

示例

CREATE TABLE IF NOT EXISTS reviews
(
    RID INT,
    REVIEW_ID INT AUTO_INCREMENT,
    REVIEW_TIME TIMESTAMP DEFAULT "0000-00-00 00:00:00",
    CONSTRAINT for3 FOREIGN KEY(RID) REFERENCES researcher(RID),
    CONSTRAINT con5 PRIMARY KEY(REVIEW_ID)
)
© www.soinside.com 2019 - 2024. All rights reserved.