首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >SQL外键格式不正确

问SQL外键格式不正确
EN

Stack Overflow用户
提问于 2022-03-23 09:55:03
回答 2查看 42关注 0票数 -1

您好,亲爱的斯塔克溢出用户,

我正在开发一个数据库来添加到我的项目中。但是,我很难找到正确的方法,在MySQL中使用PHPmyadmin建立关系。

我写了以下几封信:

代码语言:javascript
复制
CREATE TABLE Orders ( 
    OrderID int(255) NOT NULL, 
    Price decimal(65,2), 
    Order_date DATE,
    UserID Int(255) NOT NULL,
    PRIMARY KEY (OrderID), 
    FOREIGN KEY (UserID) REFERENCES Users(UserID) 
); 
CREATE TABLE Users(
    UserID Varchar(255) NOT NULL,
    Password Varchar(12) NOT NULL,
    PRIMARY KEY(UserID)    
);

但是我一直收到一个错误,告诉我我的外键格式不正确。我是不是遗漏了什么?PHPmyadmin是否使用了一种不同的查询方式?

我已经看到一些源代码告诉我要使用index或稍后使用表修饰符和索引来分配主键和外键,但这似乎是不必要的额外步骤,除非这确实是唯一的方法。我的知识还很有限。

错误消息:(errno: 150“外键约束格式不正确”)

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2022-03-23 10:07:18

  1. 表的创建顺序非常重要-您不能引用未创建的表。因此,首先创建Users,然后是Users引用列,数据类型不兼容-- Users.UserID定义为Varchar(255),而Orders.User_id定义为Int(255)。必须在两个表中设置相同的数据类型。对于id列,INT数据类型似乎是最合理的。

PS。Int(255)不安全,整数数据类型不能存储255个数字。并且长度指定将被忽略任何情况。此外,它是不可取的,所以完全删除它。

票数 2
EN

Stack Overflow用户

发布于 2022-03-23 09:57:06

也许你能试着改变创建表的顺序吗?尝试创建第一个用户,然后订购

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/71585130

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档