加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

ruby-on-rails – PG ::错误:错误:在“”“或附近的零长度分隔

发布时间:2020-12-17 03:49:46 所属栏目:百科 来源:网络整理
导读:我刚刚在我的本地postgres数据库中对pg_restore进行了转储数据库的转储,以使它们排成一行.所有数据都通过了. 现在当我尝试在Rails控制台中查询时,我收到错误. Artist.count (0.5ms) SELECT COUNT(*) FROM "artists" = 668 ** Artist.last Artist Load (1.4ms
我刚刚在我的本地postgres数据库中对pg_restore进行了转储数据库的转储,以使它们排成一行.所有数据都通过了.

现在当我尝试在Rails控制台中查询时,我收到错误.

Artist.count
   (0.5ms)  SELECT COUNT(*) FROM "artists" 
=> 668

**

Artist.last
  Artist Load (1.4ms)  SELECT "artists".* FROM "artists" ORDER BY "artists"."" DESC LIMIT 1
PG::Error: ERROR:  zero-length delimited identifier at or near """"
LINE 1: ...T  "artists".* FROM "artists"  ORDER BY "artists"."" DESC LI...
                                                             ^
: SELECT  "artists".* FROM "artists"  ORDER BY "artists"."" DESC LIMIT 1
ActiveRecord::StatementInvalid: PG::Error: ERROR:  zero-length delimited identifier at or near """"
LINE 1: ...T  "artists".* FROM "artists"  ORDER BY "artists"."" DESC LI...
                                                             ^
: SELECT  "artists".* FROM "artists"  ORDER BY "artists"."" DESC LIMIT 1
from /Users/ryanrebo/.rvm/gems/ruby-2.0.0-p481/gems/activerecord-3.2.13/lib/active_record/connection_adapters/postgresql_adapter.rb:1161:in `exec'

我在所有其他模型上得到相同的错误.我也不能使用find(id).

有任何想法吗?

解决方法

发生此错误是因为“艺术家”表没有通过以下方式用于订单的主键:

Artist Load (1.4ms) SELECT “artists”.* FROM “artists” ORDER BY “artists”.”” DESC LIMIT 1

通过将以下代码块添加到rails迁移或在数据库中运行alter table命令来添加要修复的主键:

execute <<-SQL
ALTER TABLE assets ADD PRIMARY KEY (id);
SQL

其中id是“艺术家”的主键.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读