首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Rails 4-使用MySQL2 gem获取“表不存在”错误

Rails 4-使用MySQL2 gem获取“表不存在”错误
EN

Stack Overflow用户
提问于 2013-12-04 15:08:29
回答 1查看 319关注 0票数 0

我试图删除一个表并使用以下代码变体截断它。以下所有版本都给出了相同的错误。

代码:放置“清除数据库表: program_slots”ProgramSlot.destroy_all ProgramSlot.destroy_all TABLE program_slots)

代码语言:javascript
复制
   puts "Clearing Database Table: program_slots"
ProgramSlot.destroy_all
ActiveRecord::Base.connection.execute("TRUNCATE TABLE PROGRAMSLOTS")

    puts "Clearing Database Table: program_slots"
ProgramSlot.destroy_all
ActiveRecord::Base.connection.execute("TRUNCATE TABLE 'program_slots'")

    puts "Clearing Database Table: program_slots"
ProgramSlot.destroy_all
ActiveRecord::Base.connection.execute("TRUNCATE TABLE PROGRAM_SLOTS")

表名为program_slots

我遇到的错误是:

代码语言:javascript
复制
  >> ProgramSlot Load (0.6ms)  SELECT `program_slots`.* FROM `program_slots`

     (0.8ms)  TRUNCATE TABLE PROGRAMSLOTS

     Mysql2::Error: Table 'dd_development.programslots' doesn't exist: TRUNCATE TABLE PROGRAMSLOTS

正确的语法是什么?我在execute语句中插入的下划线似乎不是经过.......Notice的,错误语句试图找到一个名为"program_slots“的表,但真正的表名是”program_slots“。

我该怎么解决这个问题?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-12-04 16:02:48

MySQL表名区分大小写,这就是#1和#3失败的原因。如果要使用引号,那么需要为MySQL使用正确的引号,这就是#2失败的原因。我不知道为什么:

代码语言:javascript
复制
ActiveRecord::Base.connection.execute("TRUNCATE TABLE program_slots")

不起作用。如果没有,您可以使用这个:

代码语言:javascript
复制
ActiveRecord::Base.connection.execute("TRUNCATE TABLE `program_slots`")

注意有角度的单引号。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/20378885

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档