mysql - mac os 上的 MYSQL 5.6.41 中的 FOREIGN KEY 赋值
问题描述
创建表时遇到问题。我使用了以下查询:
CREATE TABLE users (
id int NOT NULL PRIMARY KEY,
address_id int NOT NULL,
first_name VARCHAR(40),
last_name VARCHAR(40),
age int,
FOREIGN KEY FK_address (address_id) REFERENCES address (id)
);
或者
CREATE TABLE Users (
OrderID int NOT NULL,
OrderNumber int NOT NULL,
PersonID int,
PRIMARY KEY (OrderID),
FOREIGN KEY (PersonID) REFERENCES Persons(PersonID)
);
每次我发现错误
ERROR 1064 (42000):您的 SQL 语法有错误;检查与您的 MySQL 服务器版本相对应的手册,以获取在 'KEY (address_id) REFERENCES address (id) 附近使用的正确语法
我什至尝试制作一张表格并在之后分配键
CREATE TABLE Users (
OrderID int NOT NULL,
OrderNumber int NOT NULL,
PersonID int,
PRIMARY KEY (OrderID),
);
ALTER TABLE users ADD FOREIGN KEY (PersonID) REFERENCES Persons(PersonID);
但出现ERROR 1072 (42000): Key column 'address_id' doesn't exist in the table
任何人都可以帮助我解决问题或提供任何建议吗?
解决方案
尝试这个,
创建表地址(add_Id 编号主键);
CREATE TABLE users ( id int NOT NULL PRIMARY KEY, <br> address_id int NOT NULL, <br> first_name VARCHAR(40), <br> last_name VARCHAR(40), <br> age int, CONSTRAINT FK_address FOREIGN KEY (address_id)参考地址(add_id));
推荐阅读
- c - 如何转义 utf-8 并将 utf-8 代码转换为字节
- regex - Perl 正则表达式交换匹配组
- php - 如何计算非注册用户按“搜索”的次数,然后将其保存在 MySQL 数据库中并限制每个用户的次数?
- angular - 离子谷歌地图找不到元素[#map_canvas]
- javascript - Maxlength 使用 Angular JS 不适用于输入类型文本
- nginx - gunicorn 和 prerender.io 的 NGINX 配置
- angular - 如何禁用基于其他组件单选按钮选项的表单元素
- xamarin.forms - 如何减少xamarin forms uwp平台中汉堡菜单的宽度
- linux - 在 Bash(和其他 shell 语言)中,如何在传递的参数中保留空格转义字符
- python - 将列表的几个索引转换为十六进制