我已经阅读了几篇文章,但无法解决在 phpMyAdmin 中创建外键的问题。我有以下两个架构:
CREATE TABLE `verifieduser` (
`id` int(11) NOT NULL,
`name` varchar(50) NOT NULL,
`email` varchar(50) NOT NULL,
`password` varchar(50) NOT NULL,
`country` varchar(50) NOT NULL,
`location` varchar(50) NOT NULL,
`rname` varchar(50) NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
CREATE TABLE `restaurant` (
`location` varchar(50) NOT NULL,
`cuisine` varchar(30) NOT NULL,
`description` varchar(200) NOT NULL,
`phone` varchar(20) NOT NULL,
`rname` varchar(50) NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
ALTER TABLE `restaurant`
ADD PRIMARY KEY (`location`,`rname`),
ADD UNIQUE KEY `phone` (`phone`);
我试图让 verifyuser 表中的 rname 成为餐厅表中 rname 的外键。我不确定为什么它不允许我这样做,因为它具有相同的值,并且我没有将约束更改为“SET NULL”。
提前致谢。
最佳答案
在上面的查询中,您没有将rname
设置为restaurant
的主键,我认为这就是问题所在。在我看来,您应该在 restaurant
中有一个列名 id
,它应该是主键,在 verifieduser
中您应该有 rid
作为餐厅
关于mysql - PHPMyAdmin Mysql 在 <attribute> 上创建外键时出错(检查数据类型),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42710838/