postgresql - 无法在 postgres 中删除索引,因为它不存在
问题描述
在 postgres 数据库中,我有一个唯一约束和为其创建的两个唯一索引。我使用以下查询删除了约束
alter table my_schema.users drop constraint users_dept_uk
它已经删除了约束和一个索引,但仍然存在第二个索引。
下面的查询仍然给出索引存在
SELECT r.relname, r.relkind, n.nspname
FROM pg_class r INNER JOIN pg_namespace n ON r.relnamespace = n.oid
WHERE r.relname = 'users_dept_idx';
给出以下输出
users_dept_idx, i, my_schema
当我执行以下查询时
drop index my_schema.users_dept_idx
我收到错误
sqlalchemy.exc.ProgrammingError: (psycopg2.errors.UndefinedObject) index "users_dept_idx" does not exist
我在这里想念什么?由于此索引,我不再需要它,因此无法删除它并且无法插入数据。
解决方案
索引名称需要在其周围加上引号,这很奇怪。下面的命令工作得很好并且也删除了索引
drop index my_schema."users_dept_idx"
推荐阅读
- c++ - 在 QChart 上画一个点
- javascript - Filepond无法在本地保存文件
- python-3.x - 我需要 python 3 中的 typeError 帮助,我是编码/python 新手,所以我有点困惑
- java - p:fileDownload 的问题(异常)
- javascript - 导入和导出意外令牌导出已安装 babel
- unit-testing - 如何在 ARTOS 中根据平台配置测试框架?
- json - 用未知键操作对象的 jq 程序
- python - 计算一个值在字典中出现的次数?(Python 3)
- hibernate - Hibernate 看不到插入的 sql 脚本数据
- php - Selenium webdriver 自动测试数据 PHP