2012-07-05 44 views
1

我是新来的MySQL,我试图创建一个过程。我连接到数据库并使用Oracle SQLDeveloper处理数据。Oracle SQLDeveloper中的MySQL过程

当我尝试执行下面的脚本...

DELIMITER // 
CREATE PROCEDURE GetAllProducts() 
BEGIN 
SELECT * FROM products; 
END // 
DELIMITER ; 

我得到以下错误...

Error starting at line 1 in command: 
DELIMITER // 
Error at Command Line:1 Column:0 
Error report: 
SQL Error: 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 'DELIMITER //' at line 1 

我使用的是最新版本的Oracle SQL Developer作为以及拉斯MySql版本(只是安装两者)

有人可以帮助我如何使用分隔符?

感谢, 利奥

+0

我的猜测:直到句子定义分隔符是有效的,你需要使用旧的分隔符。因此它应该是DELIMITER //; – Alfabravo 2012-07-05 22:52:43

+0

@Leo如果对你有用,请接受答案 – Spring 2012-12-13 10:42:32

回答

1

你的代码是100%正确的。 DELIMITER不是MySQL命令,该命令必须由客户端支持。 DELIMITER帮助客户端解析脚本中的语句。

您的程序有一条语句,因此您可以在没有BEGIN ... END且没有DELIMITERS的情况下重写它,例如, -

CREATE PROCEDURE GetAllProducts() 
SELECT * FROM products; 

此外,你可以尝试支持DELIMITER另一个客户:mysql — The MySQL Command-Line Tool,GUI工具 - dbForge Studio for MySQL(免费版),或等。

+0

谢谢Devart。所以最终它是不支持“分隔符”更改的客户端...... mhhh,没想到。我需要获得另一个客户端,当你有大量的代码时,mysql命令行很好,但不会太火,dbForge Studio看起来很有前途,但如果你需要超越基本的程序调试等,仍然不完全免费。仍然不错东西:)问候,狮子座。 – Leo 2012-07-06 14:32:23

相关问题