Mysql
 sql >> Base de données >  >> RDS >> Mysql

Erreur de syntaxe Rails et MySQL avec plusieurs instructions SQL dans un bloc d'exécution

Le problème ici est que l'adaptateur de base de données Rails Mysql2 s'étouffe lorsqu'il existe plusieurs commandes SQL dans le même bloc d'exécution. Les éléments suivants fonctionneront correctement :

execute <<-SQL
  ALTER TABLE properties
    ADD name VARCHAR(255) NOT NULL;
SQL
execute <<-SQL
  ALTER TABLE properties
    ADD CONSTRAINT fk_properties_name
    FOREIGN KEY (name)
    REFERENCES valid_property_names (property_name);
SQL

Ce comportement peut vous dérouter si vous venez d'utiliser PostgreSQL avec Rails puisque l'adaptateur Postgres n'a pas la même limitation.