当我从mysql控制台或MySQL Workbench更改Delimeter时,我没有收到任何错误,
但是当我在轨道上的ruby中嵌入相同的代码时,我得到了错误
mysql> DELIMITER $$
mysql>
没有错误.
但
ActiveRecord::Base.connection.execute(%Q{
DELIMITER $$
})
得到:
ActiveRecord::StatementInvalid: Mysql2::Error: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'DELIMITER $$' at line 1:
解决方法:
DELIMITER实际上是MySQL命令行设置,而不是SQL:http://dev.mysql.com/doc/refman/5.0/en/mysql-commands.html.这意味着您无法以这种方式设置分隔符.
最重要的是,如果可以,ActiveRecord :: Base.connection.execute只允许您一次执行一个语句(参见http://www.seanr.ca/tech/?p=75),那将无济于事.