Mysql
 sql >> Database >  >> RDS >> Mysql

Rails e errore di sintassi MySQL con più istruzioni SQL in un blocco di esecuzione

Il problema qui è che l'adattatore del database Rails Mysql2 si blocca quando sono presenti più comandi SQL all'interno dello stesso blocco di esecuzione. Il seguente funzionerà bene:

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

Questo comportamento potrebbe confonderti se provieni dall'utilizzo di PostgreSQL con Rails poiché l'adattatore Postgres non ha la stessa limitazione.