mysql - 无法更改列并将其设为外键

标签 mysql

我有两个表,employee 和 tbl_feedback。我想做的是在 tbl_feedback 中添加 id 作为外键。我的 tbl_feedback 上已经有一个 id 列,所以我尝试使用这个来改变它:

ALTER TABLE tbl_feedback
ADD FOREIGN KEY (id) REFERENCES employee(id);

当我点击 go 时,我只得到“无法添加外键约束”。我做错了吗?


tbl_feedback

tbl_feedback

员工 employee

最佳答案

引用表必须有主键并且主键字段不能为NULL 因此,如果需要,首先修改引用表

例如,

ALTER TABLE TblReference
Alter column refid int NOT NULL

ALTER TABLE TblReference
ADD constraint PK_TblReference_RefId primary key (refid)

然后简单地添加外键约束

ALTER TABLE TblSource
ADD CONSTRAINT FK_TblSource_Id FOREIGN KEY (id)   
    REFERENCES TblReference (refid)

关于mysql - 无法更改列并将其设为外键,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48281656/

相关文章:

java - 生成名称排列并生成数据库

java - SQL 语句和准备语句错误

PHP PDO 向用户显示格式化错误

更新期间出现 MySQL INET_ATON 错误,消息为 "Incorrect string value"

php - 如何使用 Laravel 4 框架在 ANGULARJS 中执行所有 MySql 查询

php仅从mysql检索随机行一次

php - 为单个外键一次插入多条记录

mysql - 使用 mysql 或 cakephp 以月为单位搜索结果

mysql - 在 bash 脚本中将变量注入(inject)到 mysql 查询中

mysql - 根据每位员工的功绩点从最高到最低对每个员工进行排名