mysql - 为什么 SQL 声明失败?

标签 mysql sql declare

我有这段代码:

BEGIN
    DECLARE @NewLine CHAR(2)
    SET @NewLine = CHAR(13)+CHAR(10)
END

当我在 phpmyadmin 中运行它时,出现此错误:

#1064 - 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 'DECLARE @NewLine CHAR(2) SET @NewLine = CHAR(13) + CHAR(10) END' at line 2

我在 Google 上用了大约 2 个小时,但没有任何运气。据我所知,这应该是正确的语法。 请有人帮忙

最佳答案

诸如IFWHEN等流语句只允许在MySQL的存储过程或函数中使用。 BEGINEND 是此类语句的分隔符。

将该代码放入一个过程中,它应该可以工作。

编辑

示例程序

DELIMITER // 
CREATE PROCEDURE newline_proc(input varchar(1000))
BEGIN
  declare newline char(2);
  select CHAR(13)+CHAR(10) into newline;
  ...
END//
DELIMITER ;

关于mysql - 为什么 SQL 声明失败?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13585197/

相关文章:

sql - 如何从 3 个表中选择特定数据? [PostgreSQL 9.1]

python 声明多变量的一些情况让我困惑

arrays - MIPS汇编语言中的可变长度数组

php - 更新 MySQL 错误但代码没有问题?

php - MySql 用于搜索具有不同值的相同 ID 的日期范围的可用汽车

php - 无法创建更好的数据库结构

mysql - 如何在 MySQL WorkBench 上备份 MySQL 连接?

sql server 触发器引用最后一行

sql - 从 PostgreSQL 中的 json 列表中删除 key