hau序列插件在mysql中的使用

oogrdqng  于 2021-06-21  发布在  Mysql
关注(0)|答案(2)|浏览(500)

有没有可能在mysql中使用mariadb提供的hau序列插件(https://mariadb.com/kb/en/library/sequence-storage-engine/)? 或者mysql也有类似的插件吗?我想在两个数字之间列出一个序列,但只列出一行,没有过程、函数或表格。目前,我对序列使用此查询或解决方法,这是我在此处发现的一个变体:

select (h*100+t*10+u+1) x from 
   (select 0 h union select 1 union select 2 union select 3 union select 4 union
   select 5 union select 6 union select 7 union select 8 union select 9) A, 
   (select 0 t union select 1 union select 2 union select 3 union select 4 union
   select 5 union select 6 union select 7 union select 8 union select 9) B, 
   (select 0 u union select 1 union select 2 union select 3 union select 4 union 
   select 5 union select 6 union select 7 union select 8 union select 9) C
where (h*100+t*10+u+1) between 1 and 366
order by x;

我在debian9上使用mysql社区服务器5.7.23。我已经尝试过将这个插件文件从mariadb复制到mysql服务器并安装它,但是没有成功。我猜它与mysql不兼容,因为它是mariadb的插件。以下是我尝试过的命令:

mysql> install plugin sequence soname 'ha_sequence.so';
ERROR 1126 (HY000): Can't open shared library '/usr/lib/mysql/plugin/ha_sequence.so' (errno: 2 /usr/lib/mysql/plugin/ha_sequence.so: undefined symbol: _ZN7handler11print_errorEim)

编辑(2018-09-17):
在我接受答案之前,我还试着编译mysql的插件源代码。我是半成功的,因为我已经设法编译了一些修改。但是,该插件需要一些来自mysql中的类的特性(函数),这些特性(函数)在mysql源代码中不存在。所以它不起作用。添加这些特性或者直接在插件中实现一个变通方法,或者根据我的需要修改mysql源代码,都会花费我很多时间。我真的不想深入研究mysql和/或mariadb的源代码。所以我放弃了,现在我处理上面描述的查询。

sz81bmfz

sz81bmfz1#

一次性地,用数字(和 PRIMARY KEY ).
从今往后, JOIN 到那张表上得到数字(并用 BETWEEN 或者别的什么)。

l7mqbcuq

l7mqbcuq2#

不,mariadb插件只适用于mariadb。

相关问题