mysql占位符,获取最近插入的id,关联删除
发布日期:2021-07-20 20:53:16 浏览次数:44 分类:技术文章

本文共 829 字,大约阅读时间需要 2 分钟。

mysql占位符 :  

select @id := LAST_INSERT_ID();

select @id := userId from user;

insert into table1 values(@id,'content');

 

mysql 获取最近插入的id(自增列)

在MySQL中,使用auto_increment类型的id字段作为表的主键。通常的做法,是通过“select max(id) from tablename”的做法,但是显然这种做法需要考虑并发的情况,需要在事务中对主表以“X锁“,待获得max(id)的值以后,再解锁。  

 

这种做法需要的步骤比较多,有些麻烦,而且并发性也不好。有没有更简单的做法呢?答案之一是通过select LAST_INSERT_ID()这个操作。乍一看,它和select max(id)很象,但实际上它是线程安全的。也就是说它是基于连接的,基于数据库连接是什么意义呢?举例说明:  

 

(1)、在连接1中向A表插入一条记录,A表包含一个auto_increment类型的id。

 

(2)、在连接2中向A表再插入一条记录。

 

(3)、结果:在连接1中执行select LAST_INSERT_ID()得到的结果和连接2中执行select LAST_INSERT_ID()的结果是不同的;而在两个连接中执行select max(id)的结果是相同的。

 

多表关联(联合)删除

1、delete from t1 where 条件

2、delete t1 from t1 where 条件

3、delete t1 from t1,t2 where 条件

4、delete t1,t2 from t1,t2 where 条件

前3者是可行的,第4者不可行。

也就是简单用delete语句无法进行多表删除数据操作,不过可以建立级联删除,在两个表之间建立级联

删除关系,则可以实现删除一个表的数据时,同时删除另一个表中相关的数据。

链接:

转载地址:https://blog.csdn.net/liao0801_123/article/details/82867515 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!

上一篇:MAT内存分析工具使用实例java
下一篇:设计模式-原型模式

发表评论

最新留言

路过按个爪印,很不错,赞一个!
[***.219.124.196]2024年04月06日 18时16分52秒

关于作者

    喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!

推荐文章