问题一:Seata手写的sql这个是大写的吗?
问题二:传入到TableRecords.buildRecords里面应该也是大写的吧?
Seata 是一个开源的分布式事务解决方案,它可以与各种数据库一起使用。在编写 Seata 使用的 SQL 语句时,并没有强制要求 SQL 是大写还是小写,这取决于您的个人偏好和团队的约定。
通常情况下,在编写 SQL 语句时,建议使用大写字母来表示关键字和保留字,以增加可读性和易于区分。例如:
SELECT * FROM USERS WHERE ID = 123;
使用大写字母还能避免与表名、列名或其他自定义对象发生重名冲突。
另一方面,对于标识符(如表名、列名等),可以根据个人或团队的偏好选择使用大写、小写或混合大小写的命名规范。最重要的是,在整个项目中保持一致性。
回答一:是的
回答二:你看下select的结果集 和对应的元数据是驱动的,还是mybatis-plus包装的,这里先试构建了select语句,执行后从结果集里拿的 metadata-此回答整理自钉群“Seata(分布式事务)”
Seata手写的SQL语句不限定必须大写。
可以是大小写混合,也可以全部大写或小写。
举个例子,在Seata的事务日志中,我们可以看到记录了SQL语句的MD5签名:
apache
Copy
undo_log
{
"branch_id" : 123,
"xid" : "123",
"sql" : "f335bd2554e899c53fd0619c3d137e61",
"commit_flag" : 0
}
而f335bd2554e899c53fd0619c3d137e61对应的SQL语句可能是:
sql
Copy
insert into user (name) values ('john')
也可能是:
sql
Copy
INSERT INTO USER (NAME) VALUES ('JOHN')
甚至:
sql
Copy
InSeRt iNtO UsEr (NaMe) VALueS ('john')
因此Seata记录的是SQL的MD5值,而不是SQL的原始语句。
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。
阿里云拥有国内全面的云原生产品技术以及大规模的云原生应用实践,通过全面容器化、核心技术互联网化、应用 Serverless 化三大范式,助力制造业企业高效上云,实现系统稳定、应用敏捷智能。拥抱云原生,让创新无处不在。