MySQL“DELIMITER”关键字不起作用

Ped*_*nto 6 mysql stored-procedures procedures delimiter dbvisualizer

好吧,我一直在扯这个,为什么这不起作用?

DELIMITER |

CREATE PROCEDURE Decrypt_pw()
    READS SQL DATA
BEGIN
  SELECT 'Hey Select';
END|
Run Code Online (Sandbox Code Playgroud)

它非常基础,我很确定我使用的是正确的语法,我错过了什么?

错误:

21:14:07  [DELIMITER - 0 row(s), 0.000 secs]  [Error Code: 1064, SQL State: 42000]  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 |

CREATE PROCEDURE Decrypt_pw()
    READS SQL DATA
BEGIN
  SELECT 'He' at line 1
 21:14:07  [END| - 0 row(s), 0.000 secs]  [Error Code: 1064, SQL State: 42000]  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 'END|' at line 1
Run Code Online (Sandbox Code Playgroud)

我正在使用最新版本的 DbVisualizer,这个问题可能出在软件本身上吗?

也许我应该更好地解释自己,密码在我的数据库中加密(无需担心),这允许我解密它们,这是我正在从事的个人项目。

我正在尝试开发一个脚本,允许我运行它并设置必要的数据库、表等以使其正常工作,并且我需要一些也必须创建的 SP,我正在尝试通过mysqli_query,这甚至可能吗?

基本上它是用于 php 应用程序的“设置脚本”。

更新:似乎应该可以工作,但是由于 HostGator -.- 的人不允许在 PHP 中使用对象,我无法使用对象。

我几乎已经放弃了 mysqli,因为它无法正常工作我正在尝试使用 shell_exec,我正在创建该过程,但是当我检查 ddl 时它是空的,它正在创建空过程,但至少它正在做一些事情......

小智 2

这可能是一个软件版本问题...我尝试了你的代码,它对我来说工作得很好...试试这个

DELIMITER //
    CREATE PROCEDURE Decrypt_pw()
            READS SQL DATA
      BEGIN
      SELECT 'Hey Select';
      END //
    DELIMITER ;
Run Code Online (Sandbox Code Playgroud)

  • 在 PHP 上也不起作用,一旦遇到分隔符关键字,它就会抛出错误并停止脚本,这很有趣,因为如果我更改 phpmyadmin 中的分隔符选项,它就会起作用,但我确信他们不使用 mysqli ... (2认同)