我正在尝试在新表上创建一个索引,该索引需要agency_id
(整数)和IP
地址(文本)的唯一性。我知道我需要在IP
的索引上提供一个长度。但我有问题将长度分配给只是 IP
列。
def up
create_table :whitelisted_ips do |t|
t.integer :agency_id
t.text :ip
t.timestamps
end
add_index :whitelisted_ips, [:agency_id, :ip], unique: true, length: 15
end
此代码返回错误
Mysql2 ::错误:前缀键不正确;所使用的关键部分是不是字符串,所使用的长度长于键部分,或存储引擎不支持唯一前缀的键:CREATE UNIQUE INDEX`index_whitelisted_ips_on_agency_id_and_ip` ON`whitelisted_ips`(`agency_id`(15), `ip`(15))
因为它试图将长度放在整数字段上。任何帮助将不胜感激。