mysql - 如何创建双外键

标签 mysql

我必须创建一个表,其结构如何

create table reparto
(
numrep integer,
nomespec varchar(20),
nomeosp varchar(20),
cittaosp varchar(25),
primary key (numrep,nomespec,nomeosp,cittaosp),
foreign key(nomeosp,cittaosp) references ospedale(nomeosp,cittaosp),
foreign key nomespec references specializzazione(nomeospe)
);

当然我已经创建了表格

create table ospedale
(
nomeosp varchar(20),
cittaosp varchar(25),
numasl integer,
idasp varchar(4),
primary key(nomeosp,cittaosp)
);

create table specializzazione
(
nomespe varchar (20) primary key
);

当然它不起作用,我不知道该怎么办,有人可以告诉我如何创建几个不同的外键吗?

最佳答案

我们可以在这里指出一些明显的事情。外键定义中给出的列名:

references specializzazione(nomeospe)
                                ^

与表定义中的列名称不匹配

... specializzazione ( nomespe ...
                       ^^^^^^^ 

外键的列列表应括在括号内

... foreign key (nomespec)
                ^        ^

关于mysql - 如何创建双外键,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30353119/

相关文章:

php - yii 中的关系查询

MySql 从多个表中获取数据结果

mysql - Smarty 3 多语言插件

php - 值行和空行添加到 MySQL 表

java - 防止每次更新 Play 框架网站时 MySQL 完全丢失

mysql - 过滤 MySQL 中的每一列

MYSQL:版本 libmysqlclient_16 未在具有链接时间引用的文件 libmysqlclient.so.16 中定义

mysql - 如何从 auth_user 表中按 django 中的 date_joined 顺序获取我之后的所有用户记录 [已关闭]

php - 每个用户的 mySQL 数据都是唯一的

PHP Pear 如何启用调试级别?