Ошибка DELIMITER в MySql - PullRequest
       7

Ошибка DELIMITER в MySql

4 голосов
/ 14 декабря 2011

Я использую следующий 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

Ответы [ 2 ]

7 голосов
/ 14 декабря 2011

Разделитель используется только клиентом 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

1 голос
/ 14 декабря 2011

Ваша процедура имеет одну команду, поэтому разделители не нужны -

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';
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...