MySQL 错误 翻译为:不能添加外键约束 求解啊

MySQL 错误 翻译为:不能添加外键约束 求解啊,第1张

数据类型不一致。

你的主表, id 的数据类型是int unsigned

而你的子表, hoyyb_id数据类型是 int

因为:

INT[(M)] [UNSIGNED] [ZEROFILL]

普通大小的整数。带符号的范围是-2147483648到2147483647。无符号的范围是0到4294967295。

2种解决办法

1、 主表数据类型, 修改为 int

2、子表数据类型, 修改为 int unsigned

下面是一个模拟的例子:

-- 主表, id 是 INT unsigned

mysql>CREATE TABLE test_main2 (

-> id INT unsigned NOT NULL,

-> value VARCHAR(10),

-> PRIMARY KEY(id)

->)

Query OK, 0 rows affected (0.01 sec)

-- 子表, 数据类型 int 的时候。

mysql>CREATE TABLE test_sub2 (

-> id INT NOT NULL,

-> main_id INT ,

-> value VARCHAR(10),

-> PRIMARY KEY(id),

-> CONSTRAINT main_id_cons FOREIGN KEY (main_id) REFERENCES test_main2(id)

->)

ERROR 1005 (HY000): Can't create table 'test.test_sub2' (errno: 150)

-- 子表, 数据类型int unsigned 的时候

mysql>CREATE TABLE test_sub2 (

-> id INT NOT NULL,

-> main_id INT unsigned,

-> value VARCHAR(10),

-> PRIMARY KEY(id),

-> CONSTRAINT main_id_cons FOREIGN KEY (main_id) REFERENCES test_main2(id)

->)

Query OK, 0 rows affected (0.02 sec)

有可能是 主外键约束的问题 不能建立 引用约束。 出现的报错: ERROR 1005: Can't create table主要问题以及解决办法是: 1,MySQL支持外键约束,并提供与其它DB相同的功能,但表类型必须为 InnoDB 2、建外键的表的那个列要加上index (在贴吧...

方法/步骤

安装规划求解:规划求解是Excel的一个插件,需要安装。打开新建文档左上角OFFICE按钮——Excel选项——自定义——从下列位置选择命令(所有命令)——加载宏——添加——确定。点击“加载宏”工具,d出【加载宏】对话框,勾选“分析工具库“和”规划求解加载项“,点击”确定“。随即d出Microsoft Office Excel对话框,点击”是“。开始安装。

创建表格,如下。单击“数据“工具栏,选择”规划求解“,随即d出【规划求解参数】对话框,在【设置目标单元格】中输入“$B$12”;在【可变单元格】中输入“$C$3:$C$5”,单击“添加”按钮,d出【添加约束】对话框,在【单元格引用位置】输入“$B$10”,在其右侧的下拉列表中选择【<=】,在【约束值】中输入“$B$7”。

单击“添加”按钮,继续添加约束条件。使用相同方式,再添加4个约束条件。

约束条件添加完毕,单击“确定”按钮,返回【规划求解参数】对话框,此时可发现在【约束】列表中显示出了添加的所有约束条件,然后单击“选项”按钮。随即d出【规划求解选项】对话框,选中“采用线性模型”和“假定非负”,其余保持默认设定,单击“确定”。返回【规划求解参数】对话框,单击“求解”按钮。

随即d出返回【规划求解结果】对话框,提示已经找到一解满足条件,同时在工作表中显示出计算结果,用户可以看到各种产品的售出数量以及“最大利润”的数值。在【规划求解结果】对话框中的“报告”中选择“运算结果报告”,单击“确定”,返回工作表中,此时系统自动地在工作簿中插入一个《运算结果报告1》工作表,并显示出结果报告。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/bake/11407234.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-15
下一篇 2023-05-15

发表评论

登录后才能评论

评论列表(0条)

保存