我刚刚在Windows 10上安装了Bash,安装了libmysqlclient dev包,并正在运行一个rake任务,该任务执行以下查询,以使用ActiveRecord::Base.connection.execute在mysql数据库上创建一个VIEW
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::错误:您的SQL语法有错误;检查手册
对应于MySQL服务器版本的正确语法
在“CREATE OR REPLACE VIEW debtors_customer_balances AS SELECT”附近使用
'第2行:如果存在debtors_customer_balances,则删除表;创建或
将视图debtors_customer_balances替换为SELECT
客户id等。。。
我不知道是什么原因导致了这个问题,因为查询在mac上运行得很好,只是在bash for windows中,我似乎得到了这个语法错误。
我使用的gem是mysql2(0.3.18)