【发布时间】:2016-08-23 04:48:20
【问题描述】:
我刚刚在 Windows 10 上设置了 Bash,安装了 libmysqlclient-dev 包并正在运行一个 rake 任务,该任务执行以下查询以使用 ActiveRecord::Base.connection.execute 在 mysql 数据库上创建一个视图
DROP TABLE IF EXISTS debtors_customer_balances;
CREATE OR REPLACE VIEW debtors_customer_balances AS
SELECT
customer_id,
SUM(amount_cents) AS total_cents,
SUM(CASE
WHEN due_on >= CURDATE()
THEN amount_cents
ELSE 0
END) AS current_cents,
SUM(CASE
WHEN due_on >= (CURDATE() - INTERVAL 7 DAY)
AND due_on < CURDATE()
THEN amount_cents
ELSE 0
END) AS overdue7_cents,
SUM(CASE
WHEN due_on >= (CURDATE() - INTERVAL 14 DAY)
AND due_on < (CURDATE() - INTERVAL 7 DAY)
THEN amount_cents
ELSE 0
END) AS overdue14_cents,
SUM(CASE
WHEN due_on >= (CURDATE() - INTERVAL 30 DAY)
AND due_on < (CURDATE() - INTERVAL 14 DAY)
THEN amount_cents
ELSE 0
END) AS overdue30_cents,
SUM(CASE
WHEN due_on < (CURDATE() - INTERVAL 30 DAY)
THEN amount_cents
ELSE 0
END) AS overdue30_plus_cents
FROM
debtors_balances
GROUP BY
customer_id;
但是,它正在抛出一个错误
Mysql2::Error: 你的 SQL 语法有错误;检查手册 对应于您的 MySQL 服务器版本以获得正确的语法 在“创建或替换视图债务人_客户_余额作为选择”附近使用 ' 在第 2 行:删除表如果存在债务人_客户_余额;创建或 替换视图债务人_客户_余额作为选择 customer_id 等...
我无法弄清楚是什么导致了这个问题,因为查询在 mac 上运行良好,它只是在 bash 中用于 windows 我似乎得到了这个语法错误。
我使用的 gem 是 mysql2 (0.3.18)
【问题讨论】:
标签: mysql ruby-on-rails bash mysql2 windows-subsystem-for-linux