Python 为超表查询语言实现更新选择
我被要求在python的HQL中实现select for update。我什么都没试过,因为我不知道该怎么做。 由于selectforupdate在禁用autocommit之后获取行,并且在提交和启用autocommit之前锁定表中的特定行,因此在我看来,在hypertable中实现这一点有点可疑。 如何在Hypertable中锁定几行 现在我有一张像这样的桌子Python 为超表查询语言实现更新选择,python,mysql,hypertable,Python,Mysql,Hypertable,我被要求在python的HQL中实现select for update。我什么都没试过,因为我不知道该怎么做。 由于selectforupdate在禁用autocommit之后获取行,并且在提交和启用autocommit之前锁定表中的特定行,因此在我看来,在hypertable中实现这一点有点可疑。 如何在Hypertable中锁定几行 现在我有一张像这样的桌子 CREATE TABLE foo ( c1, c2, ACCESS GROUP default (c1, c2) );
CREATE TABLE foo (
c1,
c2,
ACCESS GROUP default (c1, c2)
);
select * from foo;
001 c1 a
001 c2 b
我仍在开始学习hypertable
非常感谢您的帮助。Hypertable不支持事务,并且没有任何锁定或读修改写操作。但是,如果您只是尝试实现一个简单的更新,您可以在列上设置
MAX\u VERSIONS 1
选项,如下所示:
CREATE TABLE foo (
c1 MAX_VERSIONS 1,
c2 MAX_VERSIONS 1,
ACCESS GROUP default (c1, c2)
);
创建表foo(
c1最大版本1,
c2 MAX_版本1,
访问组默认值(c1、c2)
);
然后每次插入时,它要么1)替换旧值,要么2)如果新值不存在,则插入新值。我被要求在表中处理和存储解析数据。所以在插入或更新之前,我需要检查它是否是重复的和其他的东西。因此,如果同时读取行,则会出现问题,因为其中一个会将它们更新为已解析,而另一个也会获取相同的行并再次更新它们以使用不同的数据进行解析。