Я создал таблицу следующим образом:
create table data_table(skey int, svalue int);
Я хочу найти пробелы в skey
.Скажем, у меня есть записи 1,2,6,7.Затем выполнение SQL должно вернуть 4 и 5. Я сослался на this и попытался выполнить следующее:
select @min_val := min(svalue), @max_val := max(svalue) from data_table;
create table tmp (Field_No int);
WHILE @min <= @max DO
if not exists (select * from data_table where skey = @min)
insert into tmp (Field_No) values (@min)
set @min = @min + 1
END WHILE;
select * from tmp
drop table tmp
Рабочая среда MySQL говорит WHILE is not valid input at this position
:
![enter image description here](https://i.stack.imgur.com/6DjCS.png)
PS: я использую MySQL 5.6.25
Обновление
Добавление всего кода в хранимой процедуре по-прежнему дает мне ошибки:
![enter image description here](https://i.stack.imgur.com/2eo3c.png)