Ошибка моей версии SQL для генерации случайного числа

На моем локальном компьютере 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
But in the server it gives following error

Operation failed: There was an error while applying the SQL script to the database. ERROR 1064: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'WHERE 'number' NOT IN (SELECT number FROM random_numbers) LIMIT 1;

Версия mysql на моем локальном компьютере

mysql Ver 8.0.11 for Win64 on x86_64

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

mysql Ver 14.14 Distrib 5.6.41, for Linux

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

Используйте WHERE number NOT IN (SELECT number FROM random_numbers) ... удалите одинарные кавычки вокруг поля number.

Tim Biegeleisen 25.10.2018 08:45

Это не работает, потому что нет столбца с номером. @ Tim Biegeleisen

Hasini Nayanathara 25.10.2018 08:48

Что ж, если number не существует, а 'number' не имеет смысла, тогда что вы пытаетесь сделать в своем коде?

Tim Biegeleisen 25.10.2018 08:49

Пожалуйста, добавьте полное описание того, что пытается сделать ваш сохраненный процесс.

Tim Biegeleisen 25.10.2018 08:51
Освоение архитектуры микросервисов с Laravel: Лучшие практики, преимущества и советы для разработчиков
Освоение архитектуры микросервисов с Laravel: Лучшие практики, преимущества и советы для разработчиков
В последние годы архитектура микросервисов приобрела популярность как способ построения масштабируемых и гибких приложений. Laravel , популярный PHP...
Как построить CRUD-приложение в Laravel
Как построить CRUD-приложение в Laravel
Laravel - это популярный PHP-фреймворк, который позволяет быстро и легко создавать веб-приложения. Одной из наиболее распространенных задач в...
Освоение PHP и управление базами данных: Создание собственной СУБД - часть II
Освоение PHP и управление базами данных: Создание собственной СУБД - часть II
В предыдущем посте мы создали функциональность вставки и чтения для нашей динамической СУБД. В этом посте мы собираемся реализовать функции обновления...
Документирование API с помощью Swagger на Springboot
Документирование API с помощью Swagger на Springboot
В предыдущей статье мы уже узнали, как создать Rest API с помощью Springboot и MySql .
Роли и разрешения пользователей без пакета Laravel 9
Роли и разрешения пользователей без пакета Laravel 9
Этот пост изначально был опубликован на techsolutionstuff.com .
Как установить LAMP Stack - Security 5/5 на виртуальную машину Azure Linux VM
Как установить LAMP Stack - Security 5/5 на виртуальную машину Azure Linux VM
В предыдущей статье мы завершили установку базы данных, для тех, кто не знает.
0
4
21
0

Другие вопросы по теме