【发布时间】:2018-11-24 14:20:09
【问题描述】:
每当我更新我的数据库(存储过程中的更改、表中的更改、新表等)时,我都会创建一个新的 sql 文件,我通过 TeamViewer 在客户端计算机上运行该文件。
我希望我的应用程序更新它自己的数据库。所以我决定让它通过 ftp 下载 sql 文件,然后使用 ExecuteNonQuery 或其他东西更新自己。
不幸的是,我遇到了分隔符推送错误。如果我删除分隔符,则无法运行存储的过程更新查询(或者我遗漏了什么?)。
下面是我经常运行的一个sql文件的示例内容:
USE 'iceberg';
DROP procedure IF EXISTS 'get_unpaidandduetickets';
DELIMITER $$
USE 'iceberg'$$
CREATE DEFINER='root'@'localhost' PROCEDURE 'get_unpaidandduetickets'()
BEGIN
SELECT
(SELECT IFNULL(COUNT(ticketid),0) FROM tickets WHERE balance > 0 AND status = 1) AS unpaidtickets
,(SELECT IFNULL(COUNT(ticketid),0) FROM tickets WHERE balance > 0 AND status = 1 AND DATE(duedate) = DATE(NOW())) AS dueticketstoday
,(SELECT IFNULL(COUNT(ticketid),0) FROM tickets WHERE balance > 0 AND status = 1 AND DATE(duedate) < DATE(NOW())) AS pastduetickets;
END$$
DELIMITER ;
CALL set_databaseversion('001020181119');
有什么办法可以解决这个问题吗?我愿意接受其他方式。
提前致谢!
【问题讨论】: