首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    django模型中有外键关系的表删除相关设置

    0904自我总结 django模型中有外键关系的表删除相关设置 一.一对一 例如有Author、AuthorDetail两表 author = models.OneToOneField(to='Author...:作者删除详情删除,详情删除作者保留 2)作者找详情用 外键related_name(detail),详情找作者用 外键字段(author) 3)db_constraint断开表关联,on_delete...(多的一方):出版社删除书外键不动,书删除没有任何影响 2)出版社找书用 外键related_name(books),书找出版社 外键字段(publish) 3)db_constraint断开表关联...,on_delete规定逻辑关联删除动作,models.DO_NOTHING关联无动作 三.以外键字段关联 1)断关联,删除关联表记录,外键值置空 db_constraint=False, on_delete...', db_constraint=False, ) 1)关系字段放在任意一方都可以:出版社删除或书删除彼此不影响,但关系表一定级联删除 2)正向找 外键字段,反向找 外键字段related_name

    3K20

    Mysql检测工具使用

    REFERENCES `bar` (`foo_id`),需要指定:--alter "DROP FOREIGN KEY _fk_foo" --alter-foreign-keys-method 如何把外键引用到新表...需要特殊处理带有外键约束的表,以保证它们可以应用到新表.当重命名表的时候,外键关系会带到重命名后的表上。 该工具有两种方法,可以自动找到子表,并修改约束关系。...drop_swap: 执行FOREIGN_KEY_CHECKS=0,禁止外键约束,删除原表,再重命名新表。...2, 如果重命名表出现错误,也不能回滚了.因为原表已经被删除。 none: 类似"drop_swap"的处理方式,但是它不删除原表,并且外键关系会随着重命名转到老表上面。...因为如果更新的表Master上存在,而Slave上不存在,会导致复制的失败。使用–no-check-replication-filters选项来禁用该检查。

    1.3K20

    MySQL命令行工具:percona-toolkit安装使用初探

    pt-online-schema-change 的 工作过程解析如下: 如果存在外键,根据 alter-foreign-keys-method 参数的值,检测外键相关的表,做相应设置的处理。...Rename 原表到 old 表中,在把临时表 Rename 为原表,默认最后将原表删除,将原表上所创建的触发器删除。 因此,这个工具有如下限制: 表必须是单一列的主键或者单一唯一键。...若表存在外键,则需要指定参数 --alter-foreign-keys-method=auto|rebuild_constraints|drop_swap|none,而且外键不能有错误 表上不能有触发器..._test,t=t_device --execute --alter-foreign-keys-method=auto ③、测试记录 在测试数据库上随便导入了一份现网的数据,居然就让我碰到了触发器和外键...对象表存在外键!

    1.7K70

    Mysql 性能优化

    不安全,但是InnoDB是线程安全的 2、MySIAM锁的粒度是表,而InnoDB支持行级锁定,所以InnoDB多线程时,速度更快 3、MySIAM不支持外键,InnoDB...支持外键 4、MySIAM相对简单,效率高于InnoDB,小型应用可以考虑MySIAM InnoDB存储可以提交、回滚、崩溃恢复,但是写操作效率会底下,并占用更多的资源与内存以保留数据和索引...2、禁用唯一性检查:插入记录时,如果有唯一性检查,如果数据量很大,就会严重影响速度。当大量数据插入后,在开启唯一性检查就行。...3、禁用外键检查: 同禁用唯一性检查一样。 4、批量插入数据:一条Sql插入多个记录。 5、禁止自动提交:把事务的自动提交关掉,数据插入完成再打开事务的自动提交。...索引的类型 不支持事务,不支持外键,查询、插入可以选择这个存储引擎 表将存储再三个文件中 1) frm:存储表定义(表结构等信息)

    66910

    单表超 100000000 条记录的数据库结构变更,你能做到在线平滑变更吗?

    这是首选的方式,如果一张或多张子表过大会导致 ALTER 需要很长时间,子表会被阻塞; drop_swap:禁用外键约束 (FOREIGN_KEY_CHECKS=0) ,在进行重命名新父表之前删除原父表...子表有任何外键关联父表都将变成关联一张不存在的表,这会使得子表的外键约束失效,可以通过 SHOW ENGINE INNODB STATUS 查看。...需要为外键指定名称为 _forigen_key,因为在创建新表时候默认为新表上的外键创建这样的名称,如果没这样指定则无法删除。...' 当 --alter-foreign-keys-method=drop_swap 时,先禁用外键约束检查,删除旧表,将临时表重命名为原旧表名,完成变更 ' 200 Query SET foreign_key_checks...,根据工具指定选项进行外键处理; 删除旧表; 删除旧表上触发器。

    3.4K20

    MySQL存储引擎MyISAM与InnoDB

    存储引擎的实质就是如何实现存储数据,为存储数据建立索引以及查询、更改、删除数据等技术实现的方法。 MySQL支持插件式的表存储引擎,这种独有的插件式体系架构,让存储引擎有了依赖应用的多样性。...5、采用MyISAM存储引擎不支持外键约束,只支持全文索引。 6、采用MyISAM存储引擎进行数据单独写入或者读取,速度较快且占用资源相对要少。...7、MyISAM存储的文件类型: .frm 文件存储表定义; 数据文件扩展名为.MYD(MYDATA); 索引文件扩展名为.MYI(MYIndex); InnoDB存储引擎特点 1、支持事务处理...6、支持分区、表空间,类似Oracle数据库。 7、支持外键约束,MySQL5.5以前不支持全文索引,后面的版本支持。 8、适合对硬件资源要求较高的场合。...yum install perl-DBI perl-DBD-MySQL -y //安装操作运行库 默认情况下只能将已存在的InnoDB的存储引擎更改为MyISAM形式,若需要反过来更改需要更改命令执行脚本

    69120

    Percona Toolkit工具简介

    pt工具介绍 Percona Toolkit简称pt工具,是Percona公司开发用于管理MySQL的工具,功能包括检查主从复制的数据一致性、检查重复索引、定位IO占用高的表文件、在线DDL等,DBA熟悉掌握后将极大提高工作效率...介绍 1.找出重复的索引和外键 pt-duplicate-key-checker 这个工具会将重复的索引和外键都列出来,并生成了删除重复索引的语句,非常方便 2.执行alter的时候不会阻塞写和读取操作...pt-fk-error-logger 通过SHOW INNODB STATUS提取和保存mysql数据库最近发生的外键错误信息。...可以通过参数控制直接打印错误信息或者将错误信息存储到数据库的表中.然而现在很少用外键了,也不建议用外键. 14.查看SHOW GLOBAL STATUS的多个样本的信息 pt-mext 实际意义不大...这个工具默认的会删除源中的数据。使用的时候请注意。 28.查找mysql表并执行指定的命令,和find命令类似。

    5K30

    技术分享 | Online DDL 工具 pt-osc

    当该工具重命名原始表以让新表取而代之时,外键跟随被重命名的表,因此必须更改外键以引用新表。 支持两种方式:rebuild_constraints 和 drop_swap 。...rebuild_constraints 此方法使用 ALTER TABLE 删除并重新添加引用新表的外键约束。这是首选的方式,除非子表(引用 DDL 表中列的表)太大,更改会花费太长时间。...在某些情况下,MySQL 还会自动重命名外键所需的索引。 drop_swap 禁用外键检查(FOREIGH_KEY_CHECKS=0),先删除原始表,然后将新表重命名到原来的位置。...任何引用原表的外键将会指向一个不存在的表,这样会造成外键违规,在 show engine innodb status 中将会有类似下面的输出: Trying to add to index `idx_fk_staff_id...提供了这种处理外键约束的方法,以便数据库管理员可以根据需要禁用该工具的内置功能。 --only-same-schema-fks 只在与原始表相同数据库的表上检查外键。

    4.8K31

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

    所以说,外键一定是在从表中创建,从而找到与主表之间的联系;从表负责维护二者之间的关系。 2.外键的使用需要满足下列的条件:(这里涉及到了InnoDB的概念) 1....两张表必须都是InnoDB表,并且它们没有临时表。 注:InnoDB是数据库的引擎。MySQL常见引擎有两种:InnoDB和MyISAM,后者不支持外键。 2....建立外键关系的对应列必须具有相似的InnoDB内部数据类型。 3. 建立外键关系的对应列必须建立了索引。 4....对数据大批量导入时,它会边插入数据边建索引,所以为了提高执行效率,应该先禁用索引,在完全导入后再开启索引。 InnoDB:支持外键约束,支持事务。...ON DELETE后面的四个参数:代表的是当删除主表的记录时,所做的约定。 RESTRICT(限制):如果你想删除的那个主表,它的下面有对应从表的记录,此主表将无法删除。

    2K70

    Mysql数据库入门及简介、安装

    拥有较高的插入,查询速度,但不支持事务; InnoDB事务型数据库的首选引擎,支持ACID事务,支持行级锁定、支持事物、外键等功能, MySQL 5.5 起成为默认数据库引擎; InnoDB事务型数据库的首选引擎...InnoDB提供事务支持事务,外部键等高级数据库功能,执行大量的INSERT或UPDATE,出于性能方面的考虑,应该使用InnoDB表,支持行锁。...MYSQL数据库应用索引 索引是一种特殊的文件(InnoDB 数据表上的索引是表空间的一个组成部分),它们包含着对数据表里所有记录的引用指针。...这么做的好处:一是简化了 MySQL 对这个索引的管理工作,这个索引也因此而变得更有效率;二是 MySQL 会在有新记录插入数据表时,自动检查新记录的这个字段的值是否已经在某个记录的这个字段里出现过了;...4) 外键索引 如果为某个外键字段定义了一个外键约束条件,MySQL 就会定义一个内部索引来帮助自己以最有效率的方式去管理和使用外键约束条件。

    64120

    Mysql数据库入门及简介、安装

    拥有较高的插入,查询速度,但不支持事务; InnoDB事务型数据库的首选引擎,支持ACID事务,支持行级锁定、支持事物、外键等功能, MySQL 5.5 起成为默认数据库引擎; InnoDB事务型数据库的首选引擎...InnoDB提供事务支持事务,外部键等高级数据库功能,执行大量的INSERT或UPDATE,出于性能方面的考虑,应该使用InnoDB表,支持行锁。...MYSQL数据库应用索引 索引是一种特殊的文件(InnoDB 数据表上的索引是表空间的一个组成部分),它们包含着对数据表里所有记录的引用指针。...这么做的好处:一是简化了 MySQL 对这个索引的管理工作,这个索引也因此而变得更有效率;二是 MySQL 会在有新记录插入数据表时,自动检查新记录的这个字段的值是否已经在某个记录的这个字段里出现过了;...4) 外键索引 如果为某个外键字段定义了一个外键约束条件,MySQL 就会定义一个内部索引来帮助自己以最有效率的方式去管理和使用外键约束条件。

    86820

    MySQL 调优优化的 100 个建议

    51、经常检查和优化表。 52、经常做重写 InnoDB 表的优化。 53、有时,增加列时,先删除索引,之后在加上索引会更快。 54、为不同的需求选择不同的存储引擎。...81、使用 DROP TABLE ,然后再 CREATE TABLE ,而不是 DELETE FROM ,以删除表中所有数据。 82、最小化你要查询的数据,只获取你需要的数据,通常来说不要使用 *。...88、备份过程中停止数据的复制,以防止出现数据依赖和外键约束的不一致。 89、彻底停止MySQL之后,再从数据文件进行备份。...95、临时禁用外键约束,来提高导入的速度。 96、临时禁用唯一性检查,来提高导入的速度。 97、每次备份完后,计算数据库/表数据和索引的大小,监控其增长。...98、使用定时任务(cron)脚本,来监控从库复制的错误和延迟。 99、定期备份数据。 100、定期测试备份的数据。

    1.3K40

    MySQL 调优优化的 101 个建议!

    51、经常检查和优化表。 52、经常做重写 InnoDB 表的优化。 53、有时,增加列时,先删除索引,之后在加上索引会更快。 54、为不同的需求选择不同的存储引擎。...81、使用 DROP TABLE ,然后再 CREATE TABLE ,而不是 DELETE FROM ,以删除表中所有数据。 82、最小化你要查询的数据,只获取你需要的数据,通常来说不要使用 *。...88、备份过程中停止数据的复制,以防止出现数据依赖和外键约束的不一致。 89、彻底停止MySQL之后,再从数据文件进行备份。...95、临时禁用外键约束,来提高导入的速度。 96、临时禁用唯一性检查,来提高导入的速度。 97、每次备份完后,计算数据库/表数据和索引的大小,监控其增长。...98、使用定时任务(cron)脚本,来监控从库复制的错误和延迟。 99、定期备份数据。 100、定期测试备份的数据。

    1.4K60
    领券