[英]Creating stored procedure on MySQL
我正在尝试运行下面的查询,该查询存储在.sql
文件中,然后使用ioutils.ReadFile读取并在初始化时执行
CREATE TABLE IF NOT EXISTS districts
(
GeoCode integer PRIMARY KEY,
name varchar(32)
);
drop procedure if exists insert_district;
DELIMITER $$
CREATE PROCEDURE insert_district(in pgeocode int, in pname varchar(32))
BEGIN
INSERT INTO districts(geocode, name) VALUES (pgeocode, pname);
SELECT * FROM districts where geocode = pgeocode;
END$$
DELIMITER ;
我正在使用 database/sql 包并使用Exec运行查询
Error 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 'drop procedure if exists insert_district;
DELIMITER $$
CREATE PROCEDURE insert' at line 7
据我所知,我的语法是正确的,我对其进行了测试,所以我无法弄清楚为什么不能从程序中正确运行相同的查询。
Go MySQL 客户端默认不支持多条 SQL 语句。 你不能只给它一个文本文件;
分开的陈述。
请参阅是否存在支持单个字符串中的多个语句的 Go Mysql 驱动程序? 有关详细信息 - 您可以使用一个选项来允许多语句。
但这仍然不支持像DELIMITER
这样不被 MySQL 服务器识别的语句。 那是一个mysql 客户端命令。
您有两种选择:
mysql
客户端。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.