【问题标题】:DELIMITER error in MySqlMySql 中的 DELIMITER 错误
【发布时间】:2011-12-14 12:18:15
【问题描述】:

我正在使用以下 sql:

DELIMITER $$

DROP PROCEDURE IF EXISTS `get_auto_increment_settings`$$

CREATE PROCEDURE `get_auto_increment_settings`()
BEGIN   
    select @@global.auto_increment_offset as 'offset', @@global.auto_increment_increment as 'increment' ;

END $$
DELIMITER ;

我将它存储在 db_auto_increment_settings_procedure.sql 中,当我尝试从 ant 执行它时,我遇到以下错误:

[sql] Executing resource: /mysql/install/db_auto_increment_settings_procedure.sql
[sql] Failed to execute:  DELIMITER
[sql] com.mysql.jdbc.exceptions.MySQLSyntaxErrorException: 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
[sql] Failed to execute:  DELIMITER ;
[sql] com.mysql.jdbc.exceptions.MySQLSyntaxErrorException: 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

【问题讨论】:

  • 您的脚本是有效的 SQL - 这个问题将与您用来解释它的任何内容有关,我猜是因为 $ 在某种程度上是一个特殊字符。
  • 我尝试使用“//”,但问题再次出现。
  • 你用什么来解释 SQL? “//”不是常用来作为cmets的标记吗?
  • 一点提示:DELIMITER 不是常规的 SQL 语句。它是 MySQL 客户端(如 MySQL 捆绑的命令行客户端)提供的命令。如果 DB 库没有实现它,则需要将文件解析为单独的语句。不知道如何在 Ant 中做到这一点。

标签: mysql ant delimiter


【解决方案1】:

分隔符仅由 mysql 客户端使用(不在 API、驱动程序...等上)。
所以,它不会起作用。

查看您的错误消息:-

[sql] Executing resource: /mysql/install/db_auto_increment_settings_procedure.sql  
[sql] Failed to execute:  DELIMITER

很确定这将在 linux 系统中运行

mysql -u root -pxxx -h yyy < YOUR_SQL.sql

如果适用,您只需使用 mysql 客户端手动创建存储过程,
并且是一个无汗的解决方案。

如果您需要动态创建它,
此文档可能会提供一些洞察信息
http://dev.mysql.com/doc/refman/5.0/en/connector-j-usagenotes-basic.html

【讨论】:

  • 我使用了mysql的exec: 现在可以了。谢谢。
【解决方案2】:

您的程序只有一个命令,因此不需要分隔符 -

DROP PROCEDURE IF EXISTS `get_auto_increment_settings`;

CREATE PROCEDURE `get_auto_increment_settings`()
SELECT @@global.auto_increment_offset AS 'offset', @@global.auto_increment_increment AS 'increment';

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-12-17
    • 1970-01-01
    • 2013-11-15
    • 2019-01-24
    • 1970-01-01
    • 2019-04-26
    • 2013-08-08
    • 2017-01-15
    相关资源
    最近更新 更多