2014-09-21 2 views
0

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

CREATE TEMPORARY TABLE IF NOT EXISTS table2 AS (
select AVG(Score) as aScore, MovieCode 
from UserMovies 
group by MovieCode 
) 

UPDATE Movies 
set Score =(
select aScore 
from table2 
where Movies.Code=table2.MovieCode) 

DROP TABLE IF EXISTS table2 

Это не позволит мне создать хранимую процедуру. Говорит об ошибке рядом с частью обновления кода.

ответ

2

Обычно что-то, как это должно работать:

DELIMITER // 

DROP PROCEDURE IF EXISTS `sp_Name`// 

CREATE PROCEDURE `sp_Name`() 
BEGIN 
    CREATE TEMPORARY TABLE IF NOT EXISTS table2 AS (
    select AVG(Score) as aScore, MovieCode 
    from UserMovies 
    group by MovieCode 
); 

    UPDATE Movies 
    set Score = (
    select aScore 
    from table2 
    where Movies.Code=table2.MovieCode); 

    DROP TABLE IF EXISTS table2; 
END// 

DELIMITER ; 

SQL Fiddle demo

+0

Я попробовал начало и конец, и даже; в конце, и это не сработало, но если скопировано и прошло за sql-частью таблицы temp, обновите и отпустите его. Зачем? Единственная разница, которую я действительно вижу, - это пробел между = и (в разделе обновления. Это действительно проблема? –

+0

@billbob: вы используете что-то вроде phpMyAdmin? – wchiquito

+0

Querious для mac –

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