2013-12-23 2 views
0

Я новичок в изучении хранимой процедуры. Теперь я пытаюсь сделать процедуру, которая будет генерировать случайное число и сохранить его в переменной, а затем вставить значение в другую таблицу.
Ошибка mysql хранимой процедуры при создании

create procedure getRand() 
begin 
delcare rc varchar(255); 
SELECT CHAR(ROUND(65 + FLOOR(RAND() * 57))) into rc; 
insert into Rand_loader (snum,rnum) values (rc,rc); 
end// 

Но когда я попытался запустить это на MySQL, то он дает эту ошибку

ERROR 1064 (42000): 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 'rc varchar(255); 
SELECT CHAR(ROUND(65 + FLOOR(RAND() * 57))) into rc; 
insert' at line 3 

Я не могу понять это error.Ill оценить вашу помощь
Пожалуйста, помогите мне решить эту

+1

delcare -> DECLARE – Devart

+1

DECLARE у вас есть опечатка – Mihai

+0

проблема решена предложением, указанным в комментарии. Да, это проблема DECLARE – Despicable

ответ

0

Вам просто нужно заменить declare с DECLARE и всегда пытаются использовать заглавные буквы при написании команд SQL.

1

Вы написали «заявить» неправильно.

CREATE PROCEDURE `getRand`() 
    LANGUAGE SQL 
    NOT DETERMINISTIC 
    CONTAINS SQL 
    SQL SECURITY DEFINER 
    COMMENT '' 
BEGIN 
declare rc varchar(255); 
SELECT CHAR(ROUND(65 + FLOOR(RAND() * 57))) into rc; 
insert into Rand_loader (snum,rnum) values (rc,rc); 
END 
2

Попробуйте ввести код. Это работает для меня

DELIMITER $$ 

CREATE 
    /*[DEFINER = { user | CURRENT_USER }]*/ 
    PROCEDURE `yourdatabasename`.`getRand`() 
    /*LANGUAGE SQL 
    | [NOT] DETERMINISTIC 
    | { CONTAINS SQL | NO SQL | READS SQL DATA | MODIFIES SQL DATA } 
    | SQL SECURITY { DEFINER | INVOKER } 
    | COMMENT 'string'*/ 
    BEGIN 
DECLARE rc VARCHAR(255); 
SELECT CHAR(ROUND(65 + FLOOR(RAND() * 57))) INTO rc; 
INSERT INTO Rand_loader (snum,rnum) VALUES (rc,rc); 

    END$$ 

DELIMITER ; 

Вы можете скачать SQLyog здесь

https://code.google.com/p/sqlyog/downloads/list 

создавать таблицы и хранимые процедуры с визуальными инструментами

Смежные вопросы