精华内容
下载资源
问答
  • mysql设置外键的四种方法(转载)
    更多相关内容
  • mysql建立外键

    2021-01-20 00:11:20
    建立外键的前提:本表的列必须与外键类型相同(外键必须是外表主键)。 外键作用: 使两张表形成关联,外键只能引用外表中的列的值! 指定主键关键字: foreign key(列名) 引用外键关键字: references <外键...
  • 2012-08-31 回答mysql外键设置详解(1) 外键的使用:外键的作用,主要有两个:一个是让数据库自己通过外键来保证数据的完整性和一致性一个就是能够增加er图的可读性有些人认为外键的建立会给开发时操作数据库带来很大的...

    2012-08-31 回答

    mysql外键设置详解

    (1) 外键的使用:

    外键的作用,主要有两个:

    一个是让数据库自己通过外键来保证数据的完整性和一致性

    一个就是能够增加er图的可读性

    有些人认为外键的建立会给开发时操作数据库带来很大的麻烦.因为数据库有时候会由于没有通过外键的检测而使得开发人员删除,插入操作失败.他们觉得这样很麻烦

    其实这正式外键在强制你保证数据的完整性和一致性.这是好事儿.

    例如:

    有一个基础数据表,用来记录商品的所有信息。其他表都保存商品id。查询时需要连表来查询商品的名称。单据1的商品表中有商品id字段,单据2的商品表中也有商品id字段。如果不使用外键的话,当单据1,2都使用了商品id=3的商品时,如果删除商品表中id=3的对应记录后,再查看单据1,2的时候就会查不到商品的名称。

    当表很少的时候,有人认为可以在程序实现的时候来通过写脚本来保证数据的完整性和一致性。也就是在删除商品的操作的时候去检测单据1,2中是否已经使用了商品id为3的商品。但是当你写完脚本之后系统有增加了一个单据3 ,他也保存商品id找个字段。如果不用外键,你还是会出现查不到商品名称的情况。你总不能每增加一个使用商品id的字段的单据时就回去修改你检测商品是否被使用的脚本吧,同时,引入外键会使速度和性能下降。

    (2) 添加外键的格式:

    alter table yourtablename

    add [constraint 外键名] foreign key [id] (index_col_name, ...)

    references tbl_name (index_col_name, ...)

    [on delete {cascade | set null | no action | restrict}]

    [on update {cascade | set null | no action | restrict}]

    说明:

    on delete/on update,用于定义delete,update操作.以下是update,delete操作的各种约束类型:

    cascade:

    外键表中外键字段值会被更新,或所在的列会被删除.

    restrict:

    restrict也相当于no action,即不进行任何操作.即,拒绝父表update外键关联列,delete记录.

    set null:

    被父面的外键关联字段被update ,delete时,子表的外键列被设置为null.

    而对于insert,子表的外键列输入的值,只能是父表外键关联列已有的值.否则出错.

    外键定义服从下列情况:(前提条件)

    1)

    所有tables必须是innodb型,它们不能是临时表.因为在mysql中只有innodb类型的表才支持外键.

    2)

    所有要建立外键的字段必须建立索引.

    3)

    对于非innodb表,foreign key子句会被忽略掉。

    注意:

    创建外键时,定义外键名时,不能加引号.

    如: constraint 'fk_1' 或 constraint "fk_1"是错误的

    (3) 查看外键:

    show create table ***;可以查看到新建的表的代码以及其存储引擎.也就可以看到外键的设置.

    删除外键:

    alter table drop foreign key '外键名'.

    注意:

    只有在定义外键时,用constraint 外键名 foreign key .... 方便进行外键的删除.

    若不定义,则可以:

    先输入:alter table drop foreign key -->会提示出错.此时出错信息中,会显示foreign key的系统默认外键名.--->

    用它去删除外键.

    展开全文
  • Mysql设置外键约束失效

    千次阅读 2018-03-05 11:16:05
    1 查看外键约束是否有效 select @@FOREIGN_KEY_CHECKS,1表示有效,0表示失效。2 设置失效 SET FOREIGN_KEY_CHECKS = 0 ,设置生效 SET FOREIGN_KEY_CHECKS = 13 注意,这个设置只会对单个Connection生效,...

    1  查看外键约束是否有效   select @@FOREIGN_KEY_CHECKS,1表示有效,0表示失效。


    2 设置失效  SET FOREIGN_KEY_CHECKS = 0 ,设置生效 SET FOREIGN_KEY_CHECKS = 1


    3 注意,这个设置只会对单个Connection生效,如果是管理工具,则是单个窗口。

    展开全文
  • mysql 设置外键

    2021-02-08 05:46:11
    mysql 设置外键数据库mysql 建立外键的前提:本表的列必须与外键类型相同(外键必须是外表主键)。外键作用:使两张表形成关联,外键只能引用外表中的列的值!指定主键关键字:foreign key(列名)引用外键关键字:...

    mysql 设置外键

    数据库mysql 建立外键的前提:本表的列必须与外键类型相同(外键必须是外表主键)。

    外键作用:使两张表形成关联,外键只能引用外表中的列的值!

    指定主键关键字:foreign key(列名)

    引用外键关键字:references (外键列名)

    事件触发限制: on delete和on update , 可设参数cascade(跟随外键改动), restrict(限制外表中的外键改动),set Null(设空值),set Default(设默认值),[默认]no action

    例如:

    outTable表主键id 类型int

    创建含有外键的表:

    create table temp(

    id int,

    name char(20),

    foreign key(id) references outTable(id) on delete cascade on update cascade);

    说明:把id列设为外键参照外表outTable的id列当外键的值删除本表中对应的列删除当外键的值改变本表中对应的列值改变。

    自己实践才能完全了解外键的作用关键是:事件触发限制的作用restrict 在没有删除引用id的时候不允许删除背引用id

    展开全文
  • mysql外键设置

    2012-08-29 09:43:32
    mysql外键设置,使用。添加外键的格式: ALTER TABLE yourtablename ADD [CONSTRAINT 外键名] FOREIGN KEY [id] (index_col_name, ...) REFERENCES tbl_name (index_col_name, ...) [ON DELETE {CASCADE | ...
  • 数据库表A: CREATE TABLE task_desc_tab ( id INT(11) PRIMARY KEY NOT NULL COMMENT '自增主键' AUTO_INCREMENT, <strong>taskname</strong> VARCHAR(200) NOT NULL COMMENT '任务名字', sqlname VARCHAR(20) ...
  • mySQL设置外键

    千次阅读 2018-05-11 11:30:47
    -- 设置外键 例如-- -- alter table 外键表名 add constraint 约束名称 foreign key (外键字段) references 主键表名(约束列名) -- 如果表A中的Ids是主键,要约束表B中得Aid列,那么语句应该是: -- alter table B ...
  • MySQL怎么设置外键约束?

    千次阅读 2021-01-18 19:07:52
    MySQL 外键约束(FOREIGN KEY)用来在两个表的数据之间建立链接,它可以是一列或者多列。一个表可以有一个或多个外键外键对应的是参照完整性,一个表的外键可以为空值,若不为空值,则每一个外键的值必须等于另一个...
  • 1、安装mysql有InnoDB的插件扩展 ./configure –prefix=/usr/local/mysql –with-plugins=csv,innobase,myisam,heap,innodb_plugin 2、找不到主表中 引用的列 3、主键和... 您可能感兴趣的文章:mysql外键(Foreign Key)
  • MySQL里创建外键时,提示错误,但只提示很简单的信息:ERROR 1005 (HY000): Can’t create table ‘db_qxztc.qx_userssssnew’ (errno: 150)。根本起不到解决问题的作用。 要看错误的详细提示,可以使用命令:(在...
  • 主要介绍了MySQL无法创建外键的原因及解决方法,然后在文中给大家及时了MySQL无法创建外键、查询外键的属性知识,感兴趣的朋友一起看看吧
  • 设置外键的命令格式为:alter table add constraint foreign key (需要设置外键的列) references (与外键关联的列);如有两张表分别为:create tableactor(id integer primary key not null,name char(36) , --需要...
  • 详解MySQL外键设置

    2021-01-18 18:22:17
    MySQL外键设置是学习MySQL数据库过程中不能不提的,下面就会为您详细介绍MySQL外键设置的方法,希望对您学习MySQL外键设置方面能有所帮助。外键的作用:保持数据一致性,完整性,主要目的是控制存储在外键表中的数据...
  • MySQL外键设置

    2021-12-02 17:27:30
    Q:主外键的关系 pr:ALTER TABLE tb_UserAndRole ADD CONSTRAINT FK__tb_UandR_Role FOREIGN KEY (RoleID) references tb_Role(ID); pr:alert外键名,foreign key(外键字段)reference主表(主键名) pr:本表...
  • 一、本次数据库中有student,course,sc表,其设置情况-- 创建course表CREATE TABLE `course` (`cno` varchar(3) NOT NULL,`cname` varchar(12) DEFAULT NULL,`lhour` int(11) DEFAULT NULL,`credit` int(11) ...
  • 自己设置数据的库的时候,外键老是出错150,发现有几个点需要注意 1、外键的引用类型不一样...我的问题点:外键设置了不能为空 这就很离谱,当我设置可用为空是就能够成功,这是什么鬼才算法,算了能成功就好了。 ...
  • MySQL中如何设置外键

    万次阅读 多人点赞 2019-07-02 22:53:13
    Windows操作系统,MySQL 5.7 二、使用工具 Navicat 三、前提知识 1.什么是主键 Primary key,唯一标识一个实体,取值非空唯一。比如,一个人的身份证号。 2.什么是外键 Foreign key, 本关系表中的属性的属性值需要...
  • mysql设置外键约束的方法:可以通过FOREIGN KEY关键字来指定外键,语法“ALTER TABLE 表名 ADD CONSTRAINT 外键名 FOREIGN KEY(列名) REFERENCES 主表名 (列名);”。(1) 外键的使用:外键的作用,主要有两个:一个是...
  • 第一招、mysql服务的启动和停止net stop mysqlnet start mysql第二招、登陆mysql语法如下: mysql -u用户名 -p用户密码键入命令mysql -uroot -p, 回车后提示你输入密码,输入12345,然后回车即可进入到mysql中了,...
  • 今天上午刚刚弄明白了在navicatformysql上如何设置外键,现在分享出来,希望能够对大家有帮助。先介绍一下基本情况。现在有两个表一张是teacher表一张是dept表,现在我想把teacher表中的dept属性设置外键,关联dept...
  • 步骤: 1.选中字段(需要设外键的字段)点击“外键”; 2.外键命名:fk_主表_从表; 3.选字段(从表的字段);
  • Navicat mysql添加外键

    2022-03-09 19:59:39
    外键条件 在我们使用外键的时候,应该遵循如下条件: 1外键要存在,首先必须保证表的引擎是 InnoDB(默认的存储引擎),如果不是 InnoDB 存储引擎,那么外键可以创建成功,但没有约束作用; 2外键字段的字段类型...
  • MySql外键设置详解

    千次阅读 2021-01-18 19:18:05
    外键的作用,主要有两个:一个是让数据库自己通过外键来保证数据的完整性和一致性一个就是能够增加ER图的可读性有些人认为外键的建立会给开发时操作数据库带来很大的麻烦.因为数据库有时候会由于没有通过外键的检测而...
  • MySQL 外键
  • mysql -u 用户名 -p 用户密码键入命令mysql -u root -p,回车后提示你输入密码,输入你设置的密码,然后回车即可进入到mysql中了,mysql的提示符是:mysql>注意,如果是连接到另外的机器上,则需要加入一个参数-h...
  • MySQL命令行&MySql外键设置详解 .txt

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 145,661
精华内容 58,264
关键字:

mysql设置外键

mysql 订阅