错误代码:1005无法创建表“…”(错误号:150)

简介: 错误代码:1005无法创建表“…”(错误号:150)

如何解决错误代码:1005无法创建表“…”(错误号:150)?
错误代码:1005-您的代码中的主键引用错误

通常是由于不存在引用的外键字段。可能是您输入错误,或者检查情况应该相同,或者字段类型不匹配。外键链接字段必须与定义完全匹配。

一些已知的原因可能是:

两个关键字段的类型和/或大小不完全匹配。例如,如果一个是INT(10)关键字段,则字段也必须是INT(10),而不是INT(11)或tinyint。您可能需要使用确认字段大小SHOW CREATE TABLE,因为查询浏览器有时会在视觉上只显示INTEGER了两个INT(10)和INT(11)。您还应该检查一个不是SIGNED,另一个是UNSIGNED。它们都必须完全相同。
您尝试引用的键字段之一没有索引和/或不是主键。如果关系中的某个字段不是主键,则必须为该字段创建索引。
外键名称是已存在键的重复。检查外键的名称在数据库中是否唯一。只需在密钥名称的末尾添加一些随机字符即可进行测试。
您的一个MyISAM表或两个表都是一个表。为了使用外键,两个表都必须是InnoDB。(实际上,如果两个表都MyISAM没有,那么您将不会收到错误消息-它只会创建键。)在查询浏览器中,您可以指定表类型。
您已指定级联ON DELETE SET NULL,但相关的关键字段设置为NOT NULL。您可以通过更改级联或将字段设置为允许NULL值来解决此问题。
确保在表级别以及键列的各个字段级别,“字符集”和“排序规则”选项都相同。
您的外键列上有一个默认值(即default = 0)
关系中的字段之一是组合键(复合键)的一部分,没有单独的索引。即使字段将索引作为组合键的一部分,您也必须仅为该键字段创建一个单独的索引,以便在约束中使用它。
您的ALTER语句中有语法错误,或者在关系中输入了错误的字段名称之一
您的外键名称超过了64个字符的最大长度。
有关更多详细信息,请参阅: MySQL错误号1005无法创建表

解决方法
我在Internet上搜索了此问题的解决方案,并检查了Stack Overflow问题,但是没有一种解决方案适合我的情况。

我想创建一个从表sira_no到metal_kod的外键。

ALTER TABLE sira_no

ADD CONSTRAINT METAL_KODU FOREIGN KEY(METAL_KODU)
REFERENCES metal_kod(METAL_KODU)
ON DELETE SET NULL
ON UPDATE SET NULL ;

该脚本返回:

Error Code: 1005. Can't create table 'ebs.#sql-f48_1a3' (errno: 150)
我尝试将索引添加到被引用的表中:

CREATE INDEX METAL_KODU_INDEX ON metal_kod (METAL_KODU);
我在两个表(字符集和排序规则)上都检查了METAL_KODU,但找不到该问题的解决方案。我该如何解决这个问题?

这是metal_kod表:

METAL_KODU varchar(4) NO PRI
DURUM bit(1) NO
METAL_ISMI varchar(30) NO
AYAR_YOGUNLUK smallint(6) YES 100

声明:地推任务网所有作品(图片、文字)均由用户自行上传分享,仅供网友学习交流。

相关文章
|
JavaScript 前端开发 安全
nodejs 跨域设置
nodejs 跨域设置
289 0
|
缓存 前端开发 UED
前端常见的HTTP状态码
【4月更文挑战第6天】HTTP状态码是服务器对请求的响应状态,分为1xx(处理中)、2xx(成功)、3xx(重定向)、4xx(客户端错误)和5xx(服务器错误)五大类。常见的如200(成功)、404(未找到)、500(服务器内部错误)。理解这些状态码有助于优化前端应用的请求处理和调试。
689 1
|
2月前
|
前端开发 算法 Java
【CSS】前端三大件之一,如何学好?从基本用法开始吧!(五):背景属性;float浮动和position定位;详细分析相对、绝对、固定三种定位方式;使用浮动并清除浮动副作用
position定位(核心) 我们讲盒模型的时候,提到了3个属性可以用来控制页面排版。 三大属性:position属性,display属性,float属性。 position 属性控制页面上元素间的位置关系。 display 属性控制页面元素是否显示或者是堆叠还是并排显示。 float 属性提供控制方法。 通过float这种控制方法,可以实现多栏布局,导航菜单等等。 position属性是干嘛用的?怎么用?有哪些属性值? position属性控制页面上元素间的位置关系,也就是排版。 怎么用?要知道怎么用
407 0
|
3月前
|
机器学习/深度学习 编解码 人工智能
InternVL3.5多模态大模型开源发布,1B-241B九种尺寸,支持跨平台GUI自动化与矢量图生成
近日,上海人工智能实验室(上海AI实验室)重磅开源发布了多模态大模型书生·万象 InternVL3.5,通过创新的级联式强化学习(Cascade RL)、动态视觉分辨率路由与解耦部署架构,实现推理能力、部署效率与通用能力的全面升级。
1091 7
|
11月前
|
人工智能 并行计算 搜索推荐
SPAR3D:一张图片就能生成3D模型,每个物体的重建时间仅需0.7秒!
SPAR3D 是由 Stability AI 和伊利诺伊大学香槟分校推出的先进单图生成3D模型方法,支持快速推理与用户交互式编辑,适用于多种3D建模场景。
1793 30
SPAR3D:一张图片就能生成3D模型,每个物体的重建时间仅需0.7秒!
|
数据采集 人工智能 数据可视化
InternVL 2.5,首个MMMU超过70%的开源模型,性能媲美GPT-4o
近期Internvl2.5发布,性能与GPT-4o和Claude-3.5-sonnet等领先的商业模型相媲美,成为首个在MMMU上超过70%的开源模型,通过链式思考(CoT)推理实现了3.7个百分点的提升,展示了强大的测试时间可扩展性潜力。
899 25
|
移动开发 开发框架 JavaScript
基于Jquery WeUI的微信开发H5页面控件的经验总结(1)
基于Jquery WeUI的微信开发H5页面控件的经验总结(1)
深入解析 JMeter TPS 测试:从理论到实践
本文档介绍了如何使用Apache JMeter进行TPS测试。TPS(Transactions Per Second)是衡量系统性能的关键指标,表示每秒处理的事务数。在JMeter中,创建测试计划包括配置线程组、HTTP请求、定时器和监听器。运行测试后,通过聚合报告分析吞吐量、平均响应时间和错误率来计算TPS。当TPS不足时,可优化服务器资源、应用程序代码、数据库查询或引入缓存来提升性能。掌握TPS测试有助于系统性能优化。
|
前端开发 JavaScript 算法
JavaScript 中实现常见数据结构:栈、队列与树
JavaScript 中实现常见数据结构:栈、队列与树
301 0
|
监控 安全 前端开发
前端安全:XSS攻击与防御策略
抵御XSS攻击的关键策略包括输入验证、输出编码、设置安全HTTP头如CSP和X-XSS-Protection、谨慎管理存储和会话、使用DOMPurify等库进行数据清理、采用安全编码实践、教育用户和开发人员、实施多层防御、持续测试和更新。其他措施如使用非渲染模板引擎、限制错误信息、使用WAF、加密数据、遵守安全编码标准和进行安全审计也是重要步骤。
1141 0