Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

Erro de sintaxe Rails e MySQL com várias instruções SQL em um bloco de execução


O problema aqui é que o adaptador de banco de dados Rails Mysql2 engasga quando há vários comandos SQL dentro do mesmo bloco de execução. O seguinte funcionará bem:
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

Este comportamento pode confundi-lo se você estiver usando o PostgreSQL com Rails já que o adaptador Postgres não tem a mesma limitação.