1

我正在尝试将数据库从 MsSQL 转换为 MySQL。

对于 MsSQL 中存在的 Serializable 隔离级别,在 MySQL 中究竟应该如何进行事务配置?因为 MsSQL 关键字不起作用。

例子;

SET TRANSACTION ISOLATION LEVEL SERIALIZABLE
GO
BEGIN TRANSACTION;
UPDATE table_name SET column1 = value1, column2 = value2, ... WHERE 条件 GO
COMMIT TRANSACTION;

除了这个;在事务开始和提交之间对表的一行进行事务时,是否有基于行的锁定功能?

例子;

UPDATE table_name SET column1 = value1, column2 = value2, ... WHERE 条件

// 仅用于条件的基于行的锁定

如果默认禁用,我应该怎么做才能启用它?

谢谢你。

4

1 回答 1

1

你在设置隔离级别后开始事务了吗?它只会为下一个事务设置事务级别。您可以通过“SET SESSION TRANSACTION ISOLATION LEVEL SERIALIZABLE;”为所有会话设置它。如果您想在创建与数据库服务器的连接期间执行此操作,您可以在连接字符串的末尾添加“?sessionVariables=transaction_isolation='SERIALIZABLE'”。或者您可以在连接后立即执行一次“SET SESSION TRA...SERIALIZABLE”。

于 2022-01-16T11:29:11.203 回答