Mysql
 sql >> Datenbank >  >> RDS >> Mysql

Rails- und MySQL-Syntaxfehler mit mehreren SQL-Anweisungen in einem Ausführungsblock

Das Problem hierbei ist, dass der Rails Mysql2-Datenbankadapter abstürzt, wenn mehrere SQL-Befehle innerhalb desselben Ausführungsblocks vorhanden sind. Folgendes wird problemlos ausgeführt:

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

Dieses Verhalten kann Sie verwirren, wenn Sie PostgreSQL mit Rails verwenden, da der Postgres-Adapter nicht dieselbe Einschränkung hat.