mysql中可以相关删除吗?或者替代方案是什么

问题描述

mysql中可以相关删除吗?或者替代方案是什么

解决方案

级联删除?
解决方案二:
可以ALTER TABLE `test1`ADD CONSTRAINT `FK_test1_t1` FOREIGN KEY (`id`) REFERENCES `t1` (`id`) ON UPDATE CASCADE ON DELETE CASCADE;ON DELETE CASCADE
解决方案三:
一般会用事务来做,比如你删一个主表的一条记录,同时还想把与这个表有关系的表的数据也删掉的话 可以将这2个删除操作 放在一个事务中

时间: 2024-12-26 21:12:23

mysql中可以相关删除吗?或者替代方案是什么的相关文章

在MySQL中如何有效的删除一个大表?

在MySQL中如何有效的删除一个大表? Oracle大表的删除:http://blog.itpub.net/26736162/viewspace-2141248/ 在DROP TABLE 过程中,所有操作都会被HANG住.这是因为INNODB会维护一个全局独占锁(在table cache上面),直到DROP TABLE完成才释放.在我们常用的ext3,ext4,ntfs文件系统,要删除一个大文件(几十G,甚至几百G)还是需要点时间的.下面我们介绍一个快速DROP table 的方法: 不管多大的

MySQL中数据类型相关的优化办法_Mysql

有助于效率的类型选择 1.使你的数据尽可能小 最基本的优化之一是使你的数据(和索引)在磁盘上(并且在内存中)占据的空间尽可能小.这能给出巨大的改进,因为磁盘读入较快并且通常也用较少的主存储器.如果在更小的列上做索引,索引也占据较少的资源. 你能用下面的技术使表的性能更好并且使存储空间最小: ·尽可能地使用最有效(最小)的类型.MySQL有很多节省磁盘空间和内存的专业化类型. ·如果可能使表更小,使用较小的整数类型.例如,MEDIUMINT经常比INT好一些. ·如果可能,声明列为NOT NULL

Mysql中查找并删除重复数据的方法

  (一)单个字段 1.查找表中多余的重复记录,根据(question_title)字段来判断  代码如下   select * from questions where question_title in (select question_title from peoplegroup by question_title having count(question_title) > 1) 2.删除表中多余的重复记录,根据(question_title)字段来判断,只留有一个记录  代码如下  

mysql中创建修改删除数据表例子

在PHP中应用数据库时,通常是先在MySQL客户机的控制台中,使用DDL语句创建网站中的数据库.数据表及修改表结构等操作以后,再在PHP脚本中应用.很少直接在PHP中执行DDL语句动态创建数据库.数据表或修改表的操作,通常也只有在制作安装版本的网站时才会这么做. 1.创建表(CREATE TABLE) 数据库创建以后,使用use命令选定这个新创建的数据库作为默认(当前)数据库使用,就可以继续建立其包含的数据表.数据表的创建是使用表的前提,创建数据表主要是定义数据表的结构,包括数据表的名称.字段名

MySQL中用户授权/删除授权的方法

用户授权方法 你可以通过发出GRANT语句增加新用户:  代码如下 复制代码 shell> mysql --user=root mysql mysql> GRANT ALL PRIVILEGES ON *.* TO monty@localhost IDENTIFIED BY 'something' WITH GRANT OPTION; mysql> GRANT ALL PRIVILEGES ON *.* TO monty@"%" IDENTIFIED BY 'some

mysql中多表删除其中ID相同记录的方法_Mysql

  问题源自一个5年前的百度知道回答,刚看到这个问题时我刚上班21天,遂根据自己的那一丁点经验和临时操作检验做出了当时认为正确的回答:   但很快就被人否定,我猜主要原因就是我说的最后一句话过于绝对,但由于自己太相信自己了,而且有一大堆理由支撑着,所以没有深入研究. 最近又有网友评论了我的这个回答,我才开始查了一下百度,发现Mysql4.0以上版本已经可以通过一条delete删除多个表的数据了.看来我确实在误人子弟了,只能说声抱歉,好在楼主没有选我的答案,要不然罪过大了. 最后总结一下: MyS

mfc-MFC向mysql中插入数据失败

问题描述 MFC向mysql中插入数据失败 MFC向mysql中插入(删除,更新)数据失败,但是查询是可以成功的,将我的插入语句在navicat for mysql中执行是可以正常插入的:INSERT INTO student VALUES ('111''xzf')求大神指导,谢谢!(据说是权限什么的问题,不太懂) 解决方案 如果确定语句是一样的,但在代码中无法正确的执行,应该就是权限的问题. MySQL的用户权限设置问题注意用户权限,与系统主机的权限 解决方案二: MySQL 插入数据

MySQL中删除大表的性能问题

微博上讨论MySQL在删除大表engine=innodb(30G+)时,如何减少MySQL hang的时间,现做一下简单总结:(微博地址:http://weibo.com/1642466057/yuPz2guYJ) 当buffer_pool很大的时候(30G+),由于删除表时,会遍历整个buffer pool来清理数据,会导致MySQL hang住,解决的办法是: 1.当innodb_file_per_table=0的时候,以上不是问题,因为采用共享表空间的时候,该表所占用的空间不会被删除,bu

MySQL中管理表和索引的相关语句

1. 创建表 MySQL中创建表是通过create table语句实现的,语法这里就不介绍了,非常复杂,可以去官网上查询,所幸的是, 我们并不需要记住所有的选项,因为大部分都采用默认即可,下面介绍几个比较常用的选项. 1)指定存储引擎 默认的存储引擎由default-storage-engine指定,如果没有指定,则为MyISAM,如果建表时,你不想使用默认的存储 引擎,可以通过如下语句实现: create table table_name ( ... ) engine=engine_name;