Ruby Mysql - 加载.sql文件并执行

时间:2012-04-08 13:15:01

标签: mysql ruby

我正在尝试将ruby脚本中的.sql文件加载到字符串中然后执行它。

由于某些原因我得到一个语法错误,但是如果我将语句直接复制并粘贴到mysql中就可以正常工作了。

我是这样做的:

text = File.read(src_sql_file)
new_text = text.DOINGSOMEGSUBSTUFF
@dbh.select_db(dbname)
sql = @dbh.prepare(new_text) 
sql.execute()

我也试过这个:

sql = @dbh.prepare(new_text)  do |sth|
  sth.execute()
end

我总是得到:

Error message: 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

'CREATE TABLE `the_logs` (
`id` INT( 11 ) NOT NULL AUTO_INCREMENT PR' at line 5

这里的sql看起来像这样:

CREATE TABLE `the_logs` (
`id` INT( 11 ) NOT NULL AUTO_INCREMENT PRIMARY KEY,
`timestamp` INT( 11 ) NOT NULL ,
...

任何想法,如果我使用准备做错了吗?我也尝试过查询..也没用。

非常感谢任何帮助。 Ť

1 个答案:

答案 0 :(得分:2)

我希望你用来与MySQL交谈的那个库想要一次处理一个语句而你一次就传递几个语句。

尝试在分号上拆分字符串并单独执行每个语句。