当前位置: 首页 > 面试题库 >

PostgreSQL运算符类“ archar_pattern_ops”不接受整数数据类型

丌官向荣
2023-03-14
问题内容

我正在尝试将我的数据ID
postgresql从字符串迁移到Django中的整数,以便在狮身人面像搜索中使用它们。所以首先我要进行数据迁移,将我的数据转换为像这样的字符串整数

db.execute('''UPDATE the_table SET foo='1' WHERE foo='bar';''')

然后我要进行架构迁移

ALTER TABLE the_table ALTER COLUMN col_name TYPE integer USING (col_name::integer);

但是我遇到了一个错误

错误:运算符类“ varchar_pattern_ops”不接受数据类型整数

SQL-褋芯褋褌芯褟薪弱武器:42804

在South和pgAdmin中都会发生此错误。数据正确-字符串类型为Null或整数。我究竟做错了什么?


问题答案:

我只能像这样重现您的错误消息:

denis=# create index test_idx on test (val varchar_pattern_ops);
CREATE INDEX
denis=# alter table test alter val type int using (val::int);
ERROR:  operator class "varchar_pattern_ops" does not accept data type integer

如果您有这样一个时髦的索引,请尝试像这样删除并重新创建它:

denis=# drop index test_idx;
DROP INDEX
denis=# create index test_idx on test (val);
CREATE INDEX
denis=# alter table test alter val type int using (val::int);
ALTER TABLE

相关文档:

http://www.postgresql.org/docs/current/static/indexes-
opclass.html



 类似资料:
  • 一、数据类型 1.1 类型支持 Scala 拥有下表所示的数据类型,其中 Byte、Short、Int、Long 和 Char 类型统称为整数类型,整数类型加上 Float 和 Double 统称为数值类型。Scala 数值类型的取值范围和 Java 对应类型的取值范围相同。 数据类型 描述 Byte 8 位有符号补码整数。数值区间为 -128 到 127 Short 16 位有符号补码整数。数值

  • 整型 1,浮点型 1.2,字符 'a',字符串 "abc",布尔型 true 和 单元类型 () 可以 用数字、文字或符号的字面意义表示出来。 数字可以加上前缀 0x、0o、0b 分别表示十六进制数、八进制数、二进制数。 为了改善数字的可读性,可以在数字类型之间加上下划线(_),比如: 1_000 等同于 1000, 0.000_001 等同于 0.000001。 我们需要告诉计算机使用到的数据类

  • 主要内容:数值类型,货币类型,字符类型,日期/时间类型,布尔类型,枚举类型,几何类型,网络地址类型,位串类型,文本搜索类型,UUID 类型,XML 类型,JSON 类型,数组类型,复合类型,范围类型,对象标识符类型,伪类型本章节,我们将讨论 PostgreSQL 的数据类型,数据类型是我们在创建表的时候为每个字段设置的。 设置数据类型的好处: PostgreSQL提 供了丰富的数据类型。用户可以使用 CREATE TYPE 命令在数据库中创建新的数据类型。PostgreSQL 的数据类型有很多种

  • 我希望为我的2D游戏创造平滑的道路。看着这正是我需要的东西。每一篇文章,甚至在上,都给它一个类型,并用构造函数传递所有控制点和一个。这似乎是过时的,不再接受任何类型参数,没有它,它只能与路径工作。构造函数也不接受控制点列表。 这会产生以下错误:

  • 数据类型和运算符 数据存储的原理 进制:十进制,二进制,八进制,十六进制 进制转换 源码、反码、补码 源码、反码、补码的应用 关键字和标识符 常量和变量 运算符 声明和定义 什么是定义:所谓的定义就是(编译器)创建一个对象,为这个对象分配一块内存并给它取上一个名字,这个名字就是我们经常所说的变量名或对象名。但注意,这个名字一旦和这块内存匹配起来(可以想象是这个名字嫁给了这块空间,没有要彩礼啊。^_