gpt4 book ai didi

mysql - 在没有 key 长度的 key 规范中使用的 Rails BLOB/TEXT 列

转载 作者:可可西里 更新时间:2023-11-01 07:01:36 25 4
gpt4 key购买 nike

我正在尝试运行 Rails 迁移,但我看到错误“ key 规范中使用的 BLOB/TEXT 列没有 key 长度”...但是,我在迁移类中指定了长度。从迁移生成 SQL 语句时,Rails 似乎忽略了这一点。有什么线索吗?

这是我的迁移类:

class AddIndexToAccounts < ActiveRecord::Migration
def self.up
add_index :TACCOUNT, :NAMEX, :length => 5
end
def self.down
remove_index :TACCOUNT, :NAMEX
end
end

这是错误输出。它似乎已经看到了长度规范,但它并没有出现在它生成的 SQL 语句中:

** [out :: 192.168.10.7] -- add_index(:TACCOUNT, :NAMEX, {:length=>5})
** [out :: 192.168.10.7] rake aborted!
** [out :: 192.168.10.7] An error has occurred, all later migrations canceled:
** [out :: 192.168.10.7]
** [out :: 192.168.10.7] Mysql::Error: BLOB/TEXT column 'NAMEX' used in key specification without a key length: CREATE INDEX `index_TACCOUNT_on_NAMEX` ON `TACCOUNT` (`NAMEX`)

最佳答案

您可以尝试更具体一些,看看是否可以让它正常工作:

add_index :TACCOUNT, :NAMEX, :length => { :NAMEX => 5 }

作为最后的手段,您可以通过调整不正确的 ADD INDEX 语句并在正确的语句上使用 execute 直接使用 SQL 以“困难的方式”创建索引。

关于mysql - 在没有 key 长度的 key 规范中使用的 Rails BLOB/TEXT 列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10092188/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com