sql >> Base de Datos >  >> RDS >> Mysql

Error de sintaxis de Rails y MySQL con múltiples sentencias SQL en un bloque de ejecución

El problema aquí es que el adaptador de base de datos Rails Mysql2 se bloquea cuando hay varios comandos SQL dentro del mismo bloque de ejecución. Lo siguiente funcionará bien:

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 comportamiento puede confundirlo si viene de usar PostgreSQL con Rails, ya que el adaptador de Postgres no tiene la misma limitación.