Использование плагина ha_sequence в MySQL - PullRequest
0 голосов
/ 12 сентября 2018

Есть ли возможность использовать плагин ha_sequence , предоставляемый MariaDB в MySQL (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;

Я использую MySQL Community Server 5.7.23 в Debian 9. Я уже пытался скопировать файл плагина из 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. Поэтому я сдался и теперь я работаю с вышеописанным запросом.

Ответы [ 2 ]

0 голосов
/ 05 октября 2018

Единовременно, создайте себе таблицу из миллионов строк, используя только цифры (и PRIMARY KEY).

Впредь, JOIN к этой таблице, чтобы получить числа (и ограничить ее BETWEEN или чем-либо еще).

0 голосов
/ 14 сентября 2018

Нет, плагины MariaDB работают только с MariaDB.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...