Skip to content

Instantly share code, notes, and snippets.

@mikecmpbll
Last active December 16, 2015 19:50
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save mikecmpbll/5487888 to your computer and use it in GitHub Desktop.
Save mikecmpbll/5487888 to your computer and use it in GitHub Desktop.
execute SQL syntax
execute <<-SQL
CREATE TABLE #{t}2 LIKE #{t};
INSERT INTO #{t}2 (SELECT * FROM #{t} GROUP BY #{c.join(", ")});
DROP TABLE #{t};
RENAME TABLE #{t}2 TO #{t};
SQL
Error:
== AddIndexesOnJoinTables: migrating =========================================
-- execute(" CREATE TABLE klasses_users2 LIKE klasses_users;\n INSERT INTO klasses_users2 (SELECT * FROM klasses_users GROUP BY klass_id, user_id);\n DROP TABLE klasses_users;\n RENAME TABLE klasses_users2 TO klasses_users;\n")
rake aborted!
An error has occurred, all later migrations canceled:
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 'INSERT INTO klasses_users2 (SELECT * FROM klasses_users GROUP BY klass_id, user_' at line 2: CREATE TABLE klasses_users2 LIKE klasses_users;
INSERT INTO klasses_users2 (SELECT * FROM klasses_users GROUP BY klass_id, user_id);
DROP TABLE klasses_users;
RENAME TABLE klasses_users2 TO klasses_users;
SQL that works:
CREATE TABLE klasses_users2 LIKE klasses_users;
INSERT INTO klasses_users2 SELECT * FROM klasses_users GROUP BY klass_id, user_id;
DROP TABLE klasses_users;
RENAME TABLE klasses_users2 TO klasses_users;
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment