Сегодня я прочитал, что MySQL может иметь JavaScript в процедуре хранения. В MariaDB я попробовал следующее:
CREATE FUNCTION `eventEngine` (bitEID BIGINT) RETURNS BIGINT
LANGUAGE JAVASCRIPT AS $$
return biEID + 1;
$$;
Я использую HeidiSQL 12.6.0.6765, когда я пытаюсь выполнить скрипт, отображается диалоговое окно ошибки, содержащее:
SQL Error (1064): You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near `JAVASCRIPT AS $$ return biEID + 1` as line 2
Я подумал, что, поскольку MariaDB, похоже, на 100% основана на MySQL, она может поддерживать эту функциональность, или я сделал что-то не так?
Извините, MariaDB 10.11 (x64)
Только что обновил локальную MariaDB до последней доступной версии: 11.5 (x64), ошибка все та же.
@Dai, MariaDB настолько похожа, что я думал, что когда она родилась, имя было взято из воздуха, потому что все имена файлов по-прежнему MySQL.
Он назван в честь его детей: «MySQL был назван в честь первой дочери Монти, Май, а MariaDB назван в честь его второй дочери, Марии».
MariaDB была ответвлена от MySQL в 2009 году. Вещи, которые Oracle, возможно, добавил в MySQL (есть сообщение в блоге о введении поддержки JS от 15 декабря 2023 года), поскольку они могут быть недоступны в MariaDB, и, конечно, наоборот.
Кроме того, в сообщении в блоге говорится
Он доступен в виде предварительной версии в MySQL Enterprise Edition и может быть загружен через Oracle Technology Network (OTN). MySQL-JavaScript также доступен в облачном сервисе MySQL Heatwave на OCI, AWS и Azure.
и я предполагаю, что ваша MariaDB не является ни MySQL EE, ни MySQL Heatwave.
Чтобы внести ясность, в руководстве MariaDB говорится, курсив мой:
LANGUAGE SQL
— это стандартное предложение SQL, и его можно использовать в MariaDB для переносимости. Однако это предложение не имеет смысла, поскольку SQL — единственный поддерживаемый язык для хранимых функций.
Извините, отредактировал и добавил версию MariaDB.
Идеальный ответ. Эта старая запись в блоге сразу пришла на ум, когда я прочитал вопрос.
@SPlatten Спасибо. Я дополнил цитатой из руководства MariaDB — LANGUAGE JAVASCRIPT
просто не поддерживается.
@AKX, чертовски стыдно.
MariaDB — это ответвление MySQL с множеством расширений и исправлений; это не совсем то же самое, что «100% на основе»