在navicat for mysql 下新建查询表出现 [错误1215 -不能添加外键约束?

在navicat for mysql 下新建查询表出现 [错误1215 -不能添加外键约束?,第1张

检查下你的parent_id字段的数据类型,长度是不是和tb_shop_category表的shop_category字段的定义相同

然后既然parent_id是外键字段,就不要设置default null

因为你的  log_level  表的   level_lv   不是主键。   也没有  唯一约束。

所以不能创建外键。

解决办法:

给   level_lv   加一个  唯一约束。

下面是一个例子:

-- 创建测试主表.  无主键.

CREATE TABLE test_main2 (

  id      INT   NOT  NULL,

  value   VARCHAR(10)

)

 

-- 创建测试子表. 

CREATE TABLE test_sub2 (

  id      INT   NOT  NULL,

  main_id INT,

  value   VARCHAR(10),

  PRIMARY KEY(id)  

)

 

-- 插入测试主表数据.

INSERT INTO test_main2(id, value) VALUES (1, 'ONE')

INSERT INTO test_main2(id, value) VALUES (2, 'TWO')

-- 插入测试子表数据.

INSERT INTO test_sub2(id, main_id, value) VALUES (1, 1, 'ONEONE')

INSERT INTO test_sub2(id, main_id, value) VALUES (2, 2, 'TWOTWO')

 

  

mysql> ALTER TABLE test_sub2

    ->    ADD CONSTRAINT main_id_cons2

    ->    FOREIGN KEY (main_id)

    ->    REFERENCES  test_main2(id)

ERROR 1005 (HY000): Can't create table 'test.#sql-608_1' (errno: 150)

  

默认情况下,无法创建外键

需要创建 unique 约束

  

mysql> ALTER TABLE test_main2

    ->   CHANGE COLUMN id id INT UNIQUE

Query OK, 2 rows affected (0.17 sec)

Records: 2  Duplicates: 0  Warnings: 0

 

   

unique 约束创建完毕后,外键创建成功。

mysql> ALTER TABLE test_sub2

    ->    ADD CONSTRAINT main_id_cons2

    ->    FOREIGN KEY (main_id)

    ->    REFERENCES  test_main2(id)

Query OK, 2 rows affected (0.14 sec)

Records: 2  Duplicates: 0  Warnings: 0

navicat和MySQL是一个管理和被管理的关系。

MySQL是一种关系数据库管理系统,关系数据库将数据保存在不同的表中,而不是将所有数据放在一个大仓库内,这样就增加了速度并提高了灵活性。MySQL所使用的SQL语言是用于访问数据库的最常用标准化语言。

Navicat是一套快速、可靠并价格相宜的数据库管理工具,专为简化数据库的管理及降低系统管理成本而设。它的设计符合数据库管理员、开发人员及中小企业的需要。

MySQL应用环境

对于一般的个人使用者和中小型企业来说,MySQL提供的功能已经绰绰有余,而且由于MySQL是开放源码软件,因此可以大大降低总体拥有成本。

Linux作为 *** 作系统,Apache 或Nginx作为 Web 服务器,MySQL作为数据库,PHP/Perl/Python作为服务器端脚本解释器。

由于这四个软件都是免费或开放源码软件(FLOSS),因此使用这种方式不用花一分钱(除开人工成本)就可以建立起一个稳定、免费的网站系统,被业界称为“LAMP“或“LNMP”组合。


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

原文地址: http://outofmemory.cn/zaji/8605676.html

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

发表评论

登录后才能评论

评论列表(0条)

保存