为什么ob的select_last_id不需要事物就可以返回id,mysql要用事务?有没有老师可以解答
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。
首先,需要明确一点,OB和MySQL是不同的数据库管理系统,并且具有不同的实现方式和策略。
在OB中,select_last_id是一个内置的函数,它可以直接返回最新插入行的ID值。OB是一个基于内存的数据库系统,它的特点是速度非常快,具有高效的操作和查询性能。OB内置了各种高级数据结构和算法来管理内存中的数据,因此不需要使用事务,即可返回最新插入行的ID值。
而MySQL是一个关系型数据库系统,它采用磁盘存储数据。MySQL使用事务可以保证数据的一致性和完整性,即在多个并发访问下,保证数据的正确性。事务可以保证数据在提交之前的操作均执行成功,而在OB中则无需这么做,因为OB基于内存的特性,只涉及单个操作并不需要事务实现多个操作的原子性。
因此,在MySQL中使用 SELECT LAST_INSERT_ID() 语句获取最新插入行的ID值需要使用事务机制,以保证数据的一致性和完整性的。