简单的只读锁定机制

时间:2018-01-09 17:30:00

标签: mysql database qt locking

我正在使用Qt为MySQL数据库开发GUI客户端 GUI由几个"编辑和#34;放在表格中,表格X,Y,Z等编辑。 如果我需要阻止客户的用户进行集体编辑",我该如何解决这个问题最简单?我只是想不出一个谷歌的短语来看别人的解决方案 我所看到的(作为一个可能的解决方案)是一个in_use表,我在其中存储锁定的表名(in_use.table)和锁定的行ID(in_use.id)。 每次打开编辑器时,都会锁定"锁定"插入,每次关闭 - 锁定被删除 有哪些潜在的陷阱?

1 个答案:

答案 0 :(得分:1)

如果要锁定表格,可以使用 LOCK TABLE table_name READ;

您还可以使用 GET_LOCK 创建锁定,使用 IS FREE LOCK 检查它们是否已打开,并使用 RELEASE_LOCK 释放它们。

打开编辑器时,您可以使用 GET_LOCK IS FREE LOCK 来检查您的手动锁是否正在使用。编辑完成后,您可以使用 RELEASE_LOCK 释放下一个人访问编辑器。

PITFALLS :在应用程序端执行此操作会出现一些问题。如果用户关闭表单,您将如何告诉数据库释放这些锁?示例:我是您的用户,我转到您的站点/胖客户端,然后单击编辑以启动我的工作,在计算机崩溃中途关闭并关闭。

编辑:如果您有不同的用例并且不想自己锁定资源,则可以创建许多不同的锁。

查看更多hereherehere

相关问题