Моя ошибка версии SQL для генерации случайного числа - PullRequest
0 голосов
/ 25 октября 2018

На моем локальном компьютере mysql работает после SP без синтаксической ошибки.

REATE DEFINER=`root`@`localhost` PROCEDURE `createAccountNumber`(IN origin_type_id INT,IN membership_type_id INT)
BEGIN
DECLARE random_number,account_number Varchar(19) DEFAULT NULL;

SELECT FLOOR(RAND() * (9999999-1000000+1)+1000000) INTO random_number
WHERE 'number' NOT IN (SELECT number FROM random_numbers)
LIMIT 1;

INSERT INTO random_numbers VALUES(random_number);
 
 SET @acc = CONCAT('100000',(select cast(origin_type_id as nchar)), (select cast(membership_type_id as nchar)), (select cast(random_number as nchar)));
 SET @x= luhn_sum(@acc);

SET account_number = CONCAT(@acc,@x);

 SELECT account_number;

END
Но на сервере выдает следующую ошибку

Операция не выполнена: при применении сценария SQL к базе данных произошла ошибка.ОШИБКА 1064: у вас есть ошибка в вашем синтаксисе SQL;проверьте руководство, соответствующее вашей версии сервера MySQL, чтобы узнать правильный синтаксис для использования рядом с номером «WHERE» NOT IN (ВЫБЕРИТЕ номер ИЗ random_numbers) LIMIT 1;

MySQL-версия моего локального компьютера:

mysql Ver 8.0.11 для Win64 на x86_64

На моем сервере mysql Версия:

mysql Ver 14.14 Distrib 5.6.41, для Linux

Если есть какая-либо альтернатива, пожалуйста, предложите мне.

...