【发布时间】:2020-02-21 21:27:45
【问题描述】:
这是我的 SQL,用于创建具有各自主键和外键的 2 个表。问题是我想在我的子表中有一个自动增量列,但我想将其他一些列作为主键。我该如何解决这个问题?
CREATE TABLE patient (
_id INT(5) UNSIGNED AUTO_INCREMENT NOT NULL,
pn VARCHAR(11) DEFAULT NULL,
first VARCHAR(15) DEFAULT NULL,
last VARCHAR(25) DEFAULT NULL,
dob DATE DEFAULT NULL,
PRIMARY KEY (_id)
);
CREATE TABLE insurance (
_id INT(5) UNSIGNED AUTO_INCREMENT,
patient_id INT(5) UNSIGNED NOT NULL,
iname VARCHAR(40) DEFAULT NULL,
from_date DATE DEFAULT NULL,
to_date DATE DEFAULT NULL,
PRIMARY KEY (patient_id),
CONSTRAINT fk_insurance FOREIGN KEY (patient_id)
REFERENCES patient(_id)
);
它给了我ERROR 1075 (42000): Incorrect table definition; there can be only one auto column and it must be defined as a key,我不知道如何解决这个问题。我是这方面的初学者,我需要帮助,谢谢。
【问题讨论】:
-
答案在留言中。
-
它不一定是主键,但它必须是一个键。
-
但是你为什么不想用它作为主键呢?
_id列的目的是什么?将patient_id设为唯一列。 -
我也不知道,我刚刚获得了这个架构用于我的作业:(
标签: mysql sql auto-increment create-table