带有mysql的串口外键

时间:2016-12-04 23:24:12

标签: mysql sql foreign-keys

这些是我的表格:

CREATE TABLE Utente (
    ID serial primary key
    name varchar(20)
);

CREATE TABLE friendship(
    idUtente1 bigint NOT NULL UNIQUE UNSIGNED , 
    idUtente2 bigint NOT NULL UNIQUE UNSIGNED , 
    dataAmicizia date,
    primary key (idUtente1,idUtente2), 
    FOREIGN KEY (idUtente1) REFERENCES Utente(ID),
    FOREIGN KEY (idUtente2) REFERENCES Utente(ID)
);

我的问题是:我无法创建外键,因为idUtente1是串行的。

我试图在两者上添加AUTO_INCREMENT,但这是不可能的。我怎么解决?

1 个答案:

答案 0 :(得分:1)

SERIAL是BIGINT UNSIGNED NOT NULL AUTO_INCREMENT UNIQUE的别名。 http://dev.mysql.com/doc/refman/5.7/en/numeric-type-overview.html

idUtente1也必须匹配。除了AUTO_INCREMENT。

尝试使用表格友谊:

CREATE TABLE friendship(
    idUtente1 bigint UNSIGNED , 
    idUtente2 bigint UNSIGNED , 
    dataAmicizia date,
    primary key (idUtente1,idUtente2), 
    FOREIGN KEY (idUtente1) REFERENCES Utente(ID),
    FOREIGN KEY (idUtente2) REFERENCES Utente(ID)
);