我需要创建一个简单的过程,但是在创建一个临时表之后,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
的原因。
以下链接有助于语法:
答案 1 :(得分: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 ';' */