首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

数据库MySQL进阶一、主外讲解

MySQL进阶主外讲解 1.什么是外: 主键:是唯一标识一条记录,不能有重复的,不允许为空,用来保证数据完整性 外:是另一表的主键, 外可以有重复的, 可以是空值,用来和其他表建立联系用的...Id=Dept_id,而Dept_id就是员工表中的外:因为员工表中的员工需要知道自己属于哪个部门,就可以通过外Dept_id找到对应的部门,然后才能找到部门表里的各种字段信息,从而让二者相关联。...注:InnoDB是数据库的引擎。MySQL常见引擎有两种:InnoDB和MyISAM,后者不支持外。 2. 建立外关系的对应列必须具有相似的InnoDB内部数据类型。...ON DELETE后面的四个参数:代表的是当删除主表的记录时,所做的约定。 RESTRICT(限制):如果你想删除的那个主表,它的下面有对应从表的记录,此主表将无法删除。...CASCADE(级联):如果主表的记录删掉,则从表中相关联的记录都将被删掉。 SET NULL:将外设置为空。

2K70
您找到你想要的搜索结果了吗?
是的
没有找到

SQL Server数据库中导入导出数据及结构时主外关系的处理

操作过程分为以下几个步骤: 步骤1:从源数据库生成数据结构脚本【不包表含外关系】   在数据源188连接上,右键点击源数据库》【任务】》【生成脚本】 ? 弹出“生成和发布脚本” ?...将“编写外脚本”的值设置为false,意思是这一步骤生成的数据结构脚本中不包含表之间的外关系。其他选项根据实际情况设置。 点击【确定】按钮,生成脚本,入下图。 ?...设置 SET IDENTITY_INSERT dbo.T_ACL_User Off ; 步骤5:从源数据库生成仅包含表外关系的数据结构脚本   步骤与步骤1大致相同,最后一步设置相反 ?...步骤6:导入外结构关系脚本至目标数据库   选中目标数据库,打开步骤5中保存的“OriginalDataStructureOnlyWithFK.sql”脚本文件,运行之,运行成功后,查看表结构 ?...外已经成功创建。

1.8K40

MySQL数据库删除如何恢复?

在日常运维工作中,对于数据库的备份是至关重要的!数据库对于网站的重要性使得我们对 MySQL 数据库的管理不容有失!然而是人总难免会犯错误,说不定哪天大脑短路了,误操作把数据库删除了,怎么办?...下面,就 MySQL 数据库删除后的恢复方案进行说明。 一、工作场景 (1)MySQL数据库每晚12:00自动完全备份。 (2)某天早上上班,9点的时候,一同事犯晕drop了一个数据库!...接着,使用002bin.sql文件恢复全备时刻到删除数据库之间,新增的数据 [root@vm-002 backup]# mysql -uroot -p ops <002bin.sql Enter password...: [root@vm-002 backup]# 再次查看数据库,发现全备份到删除数据库之间的那部分数据也恢复了!!...,即禁止更新数据库 4)先恢复全量,然后把全备时刻点以后的增量日志,按顺序恢复成SQL文件,然后把文件中有问题的SQL语句删除(也可通过时间和位置点),再恢复到数据库

10.6K21

存在外关联的主表truncate如何

主外数据库提供的一种两表之间强制关联的方法,也可以从应用层实现。...优点 缺点 数据库实现的主外数据库层机制保证,无需应用额外实现 强关联,不易扩展变更 应用实现的主外 易扩展变更 完全由应用控制,要求较高 我认为需要根据实际情况进行取舍,例如表不复杂,可以由应用实现...存在主外关联的主表,由于存在外关联关系,因此有些操作就会禁止,例如truncate。 实验 1....主外数据库提供的强约束,可以帮助我们控制主子表之间的关系,但同时还是一把双刃剑,当然,我们认为既然定义了主外,就是需要这种强制关系,但有时可能就会有一些变更,因此,如何取舍,需要根据实际情况来决策...主外关联中的主表,如果有数据,则不能直接用truncate方式删除,因为会认为有外和其关联,不能直接截断主表,若需要做,可以先禁止外约束,主表变成一个独立的表,这样就可以执行truncate了。

80430

MySQL删除数据库

删除数据库是指在数据库系统中删除已经存在的数据库数据库删除之后,原来分配的空间将被收回。需要注意的是,数据库删除之后该数据库中所有的表和数据都将被删除。因此删除数据库要特别小心。...一、通过SQL语句   MySQL中,删除数据库通过SQL语句DROP DATABASE。其语法格式如下: DROP DATABASE 数据库名;   其中“数据库名”为要删除数据库的名称。...下面删除我的系统中的名为test的数据库: $ mysql -u root -p Enter password: mysql> SHOW DATABASES; +-------------------...(0.00 sec)   上述结果显示第一次通过SHOW DATABASES;指令查看数据库的时候test数据库是存在的,通过指令DROP DATABASE test;删除test之后,再查看test...上述删除数据库的代码,在数据库不存在的时候会报错,下面代码对数据库是否存在做了判断,在数据库不存在的时候会报警告: mysql> DROP DATABASE IF EXISTS test; Query

6.1K30
领券