PostgreSQL的多列

创建复合索引时的情况

环境

    • Rails

 

    PostgreSQL

设置

在 migration 文件中添加以下内容:

add_index :xxxxxxxxxxx_xxxxxxx, [:xxxxxxxx_id, :xxxxxxxxxx_id]

这是在 Rails 中常见的索引追加设置。

迁移后的描述

bundle exec rake db:migrate:up VERSION=xxxxxxxxxxxxxxxxxxxxxxxxx

使用以上命令执行Rails的迁移。
没有出现特别的错误,迁移顺利完成。

请确认索引是否已经成功创建。

SELECT tablename, indexname FROM pg_indexes;
select * from pg_indexes where indexname = 'インデックス名';

执行上述命令后,未显示添加的索引。

解决方案 (jiě jué àn)

据发现,PostgreSQL的标识符长度限制为63个字节。
实际生成的字符数超出了这个限制。

通过此链接可以找到有关PostgreSQL的SQL语法和词法的详细文档。

这次生成表名和列名时碰巧出错了,无法成功生成。希望在执行migrate时出现错误或失败。请使用选项指定:name,确保在63个字节以内。

add_index :xxxxxxxxxxx_xxxxxxx, [:xxxxxxxx_id, :xxxxxxxxxx_id], :name => 'original_name'

广告
将在 10 秒后关闭
bannerAds