2015-12-14 4 views
1

Мне нужно создать простую процедуру, но после создания временной таблицы mysql хочет поставить «конец» после точки с запятой.Создать временную таблицу в процедуре, MySql

CREATE procedure zad2() 

    begin 
    drop temporary table if exists temp; 
    create temporary table temp as (select table_name, column_name 
     from information_schema.columns where table_schema = 'lista3' and table_name not like 'lista'); 

    declare i int default 0; 
    end$$ 
+0

Что вы пытаясь добиться именно этого? –

ответ

0

SQL хранимой процедуры есть блок, где вы будете ставить все код/​​логики .. и что блок BEGIN и END, если у вас есть блок открытия, который BEGIN, вам нужно закрыть его с END, это почему MySql хочет, чтобы вы положили END после запятой.

Ниже ссылка может помочь с синтаксисом:

CREATE PROCEDURE and CREATE FUNCTION Syntax

0

Я думаю, что нам не хватает, чтобы объявить DELIMITER $$ в начале заявления:

DELIMITER $$ /*To tell MySQL that your delimiter is now '$$' */ 
CREATE procedure zad2() 

     begin 
     drop temporary table if exists temp; 
     create temporary table temp as (select table_name, column_name 
      from information_schema.columns where table_schema = 'lista3' and table_name not like 'lista'); 

     declare i int default 0; 
     end$$ 
DELIMITER ; /*To tell your MySQL that you delimiter is back ';'  */ 
Смежные вопросы