日期:2014-05-16  浏览次数:20649 次

同样的代码,MySQL-Front成功运行,mysql命令行就报错,不知是何原因
测试代码:
#简单创建两个表和一个存储过程
drop database if exists webdb;
create database webdb;
use webdb;
create table users_message
(
english_name varchar(50) primary key,
chinese_name varchar(20)
);
insert into users_message values('Thomas Chan', '陈生');
insert into users_message values('Pangzi Long', '胖子龙');
insert into users_message values('Jacky Chan', '成龙');


DROP TABLE IF EXISTS webdb.t_users;
create table if not exists webdb.t_users
(
user_name varchar(20) collate utf8_unicode_ci primary key,
password_md5 varchar(50) collate utf8_unicode_ci not null,
email varchar(30) collate utf8_unicode_ci
) engine=InnoDB default charset=utf8 collate=utf8_unicode_ci;
insert into t_users values('Thomas Chan', '123', 'thomas@123.com');

drop procedure if exists test;
#delimiter $$
CREATE PROCEDURE test()
begin
select * from webdb.t_users;
end;
#delimiter;
call test();

在存储过程这个位置mysql命令行老报错
而且还有个问题,MySQL-Front成功运行怎么不显示结果?MySQL-Front没显示结果的功能?

------解决方案--------------------
探讨

那么新问题出现了,$$这个“控制符”,如何结束控制呢?
重启mysql命令端
输入
mysql> use webdb;
Database changed
mysql> delimiter $$
mysql> CREATE PROCEDURE test7()
-> begin
-> select * from t_users;
-> end
->……

------解决方案--------------------
delimiter;

中间需要加上空格。

 delimiter ;