如何使用MariaDB和Galera集群创建序列号(如ORACLE中的序列号)

如何使用MariaDB和Galera集群创建序列号(如ORACLE中的序列号),mariadb,galera,Mariadb,Galera,我需要在使用Galera集群的MariaDB中有一个序列号(不是主键,也不是自动增量) 我正在考虑创建一个包含序列名、当前值的表,并使用存储过程返回下一个值 我不确定Galera群集是否支持此(): 它在我的测试中有效,但我不知道我是否能保证这一点。 我应该继续这条路还是用另一种方式处理这件事?MariaDB 10.3将提供支持。我想这是为了MariaDB的最新版本?太好了!希望它能在Galera clusterI中工作,我会使vname成为\u序列的主键。一方面,该功能看起来是安全的。但请注意

我需要在使用Galera集群的MariaDB中有一个序列号(不是主键,也不是自动增量)

我正在考虑创建一个包含序列名、当前值的表,并使用存储过程返回下一个值

我不确定Galera群集是否支持此():

它在我的测试中有效,但我不知道我是否能保证这一点。
我应该继续这条路还是用另一种方式处理这件事?

MariaDB 10.3将提供支持。我想这是为了MariaDB的最新版本?太好了!希望它能在Galera clusterI中工作,我会使
vname
成为
\u序列的
主键。一方面,该功能看起来是安全的。但请注意——这将为您提供唯一的值,但不一定是连续的或有序的值。请解释为什么
AUTO_INCREMENT
不够好。MariaDB 10.3将支持。我想这是为了MariaDB的最新版本?太好了!希望它能在Galera clusterI中工作,我会使
vname
成为
\u序列的
主键。一方面,该功能看起来是安全的。但请注意——这将为您提供唯一的值,但不一定是连续的或有序的值。请解释为什么
AUTO_INCREMENT
不够好。
CREATE FUNCTION NextVal (vname VARCHAR(30))
  RETURNS INT
BEGIN

UPDATE _sequences
  SET next = (@next := next) + 1
  WHERE name = vname;

  RETURN @next;
END