Ich habe Bash auf Windows 10, installiert das libmysqlclient-dev-Paket und eine Rake-Task ausgeführt, die die folgende Abfrage zum Erstellen einer VIEW auf einer MySQL-Datenbank mit ActiveRecord :: Base.connection ausgeführt wird .ExecuteMysql2 Syntax Fehler beim Erstellen 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;
Allerdings ist es wirft einen Fehler
Mysql2::Error: 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 'CREATE OR REPLACE VIEW debtors_customer_balances AS SELECT ' at line 2: DROP TABLE IF EXISTS debtors_customer_balances; CREATE OR REPLACE VIEW debtors_customer_balances AS SELECT customer_id, etc...
ich kann nicht herausfinden, was das verursacht, wie die Abfrage von einem mac fein läuft, es ist nur in bash für Fenster ich scheine Bekomme diesen Syntaxfehler.
Das Juwel ich benutze ist mysql2 (0.3.18)
Das behebt die Abfrage, so dass es ausgeführt werden kann, aber leider ist der Grund, dass DROP TABLE-Zeile vorhanden ist, da diese Abfrage am Ende des db: seed aufgerufen wird, und aus irgendeinem Grund die VIEWS als TABLES hinzugefügt werden Schema, wenn also db: schema: load als Teil eines resed (db: reset) ausgeführt wird, erstellt es diese Ansichten als eine Tabelle und Fehler, wenn es zu dieser Abfrage kommt. –
Das Problem behoben, bei dem VIEWS als TABLES im Schema hinzugefügt wurden, indem 'ActiveRecord :: SchemaDumper.ignore_tables = ['debtors_customer_balances', 'debtors_customer_entity_balances']' 'verwendet wurde –