SQL修饰

Seata 的隔离级别默认为读未提交,该模式下本文表中的 select 语句的 SQL 修饰用法都是支持的;使用 for update 代理可以让 Seata 达到读已提交,该模式下 select 语句的用法只能部分支持。

DML语句支持

类型SQL 实例是否支持
AND & ORUPDATE … WHERE col_name1=expr1 AND col_name2= expr2
LIKEUPDATE … WHERE col_name1 LIKE ‘NE’
通配符UPDATE … WHERE col_name1 LIKE ‘NE%’
BETWEENUPDATE … WHERE col_name1 BETWEEN expr1 AND expr2
ON DUPLICATEINSERT INTO tb1_name [(col_name,…)]VALUES ({expr | DEFAULT},…),(…),…[ ON DUPLICATE KEY UPDATE col_name=expr, … ]

Select语句支持

类型SQL 实例读未提交读已提交
AND & ORSELECT FROM tb1_name WHERE col_name1=expr1 AND col_name2= expr2
ORDER BYSELECT col_name1, col_name2 FROM tb1_name ORDER BY col_name1
GROUP BYSELECT col_name1, col_name2 FROM tb1_name GROUP BY col_name1
LIKESELECT col_name1, col_name2 FROM tb1_name WHERE col_name1 LIKE ‘NE’
通配符SELECT col_name1, col_name2 FROM tb1_name WHERE col_name1 LIKE ‘NE%’
EXISTSSELECT col_name1, col_name2 FROM tb1_name WHERE EXISTS (expr1)
INSELECT col_name1, col_name2 FROM tb1_name WHERE col_name1 IN (expr1, expr2,…)
BETWEENSELECT col_name1, col_name2 FROM tb1_name WHERE col_name1 BETWEEN expr1 AND expr2
ON DUPLICATEINSERT INTO tb1_name [(col_name,…)]VALUES ({expr | DEFAULT},…),(…),…[ ON DUPLICATE KEY UPDATE col_name=expr, … ]
ALIASESSELECT t1. col_name1, t2.col_name2 FROM tb1_name AS t1, tb2_name AS t2 WHERE t1. col_name=expr AND t2. col_name=expr
TOPSELECT TOP 2 FROM tb1_name
LIMITSELECT col_name1, col_name2 FROM tb1_name LIMIT 5
JOININNER JOINLEFT JOINRIGHT JOINFULL JOINSELECT col_name1, col_name2 FROM tb1_name JOIN tb2_name>ON tb1_name. col_name1= tb2_name. col_name1
UNIONUNION ALLSELECT INTOSELECT col_name1, col_name2 FROM tb1_name UNION SELECT col_name1, col_name2 FROM tb2_name