我正在使用Qt为MySQL数据库开发GUI客户端
GUI由几个"编辑和#34;放在表格中,表格X,Y,Z等编辑。
如果我需要阻止客户的用户进行集体编辑",我该如何解决这个问题最简单?我只是想不出一个谷歌的短语来看别人的解决方案
我所看到的(作为一个可能的解决方案)是一个in_use
表,我在其中存储锁定的表名(in_use.table
)和锁定的行ID(in_use.id
)。
每次打开编辑器时,都会锁定"锁定"插入,每次关闭 - 锁定被删除
有哪些潜在的陷阱?
答案 0 :(得分:1)
如果要锁定表格,可以使用 LOCK TABLE table_name READ;
您还可以使用 GET_LOCK 创建锁定,使用 IS FREE LOCK 检查它们是否已打开,并使用 RELEASE_LOCK 释放它们。
打开编辑器时,您可以使用 GET_LOCK 或 IS FREE LOCK 来检查您的手动锁是否正在使用。编辑完成后,您可以使用 RELEASE_LOCK 释放下一个人访问编辑器。
PITFALLS :在应用程序端执行此操作会出现一些问题。如果用户关闭表单,您将如何告诉数据库释放这些锁?示例:我是您的用户,我转到您的站点/胖客户端,然后单击编辑以启动我的工作,在计算机崩溃中途关闭并关闭。
编辑:如果您有不同的用例并且不想自己锁定资源,则可以创建许多不同的锁。