[英]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.