运行教程中的创建外键的代码没有给外键正确命名。

来源:3-4 表设计进阶之字段约束条件

哈哈笑笑9632300

2021-06-30

CREATE TABLE account_user_address(
	id INT NOT NULL AUTO_INCREMENT,
	user_id INT NOT NULL,
	address VARCHAR(255),
	phone_no CHAR(11),
	PRIMARY KEY(`id`),
	FOREIGN KEY user_ref(user_id) REFERENCES account_user(id)
);

再运行

ALTER TABLE account_user_address DROP FOREIGN KEY user_ref;

题:不能掉落"user_ref":检查列/键存在
在键前user_ref account_user_address_ibfk_1

写回答

2回答

NavCat

2021-07-02

MySQL8.0在主外键添加上有一点差别,可参考下面的代码:

CREATE TABLE account_user_address(

id INT NOT NULL AUTO_INCREMENT,

user_id INT NOT NULL,

address VARCHAR(255),

phone_no CHAR(11),

PRIMARY KEY(`id`),

CONSTRAINT `user_ref`FOREIGN KEY (user_id) REFERENCES account_user(id)

);


-- 删除外键约束

ALTER TABLE account_user_address DROP FOREIGN KEY user_ref;


-- 增加外键约束

ALTER TABLE account_user_address ADD CONSTRAINT my_key FOREIGN KEY(user_id) REFERENCES account_user(id);


1
1
哈哈笑笑9632300
非常感谢!
2021-07-02
共1条回复

NavCat

2021-07-01

有报错具体的日志吗?贴上来看下。另外提供下你数据库的版本号

0
1
哈哈笑笑9632300
错误提示: mysql> ALTER TABLE account_user_address DROP FOREIGN KEY user_ref; ERROR 1091 (42000): Can't DROP 'user_ref'; check that column/key exists 数据库版本:mysql 8.0.23
2021-07-01
共1条回复

Python操作三大主流数据库 实战网易新闻客户端

零基础快速进阶,专为只懂Python语法的同学设计

432 学习 · 116 问题

查看课程