在 PG 中:
我创建了一个包括唯一邮件地址的用户表,但后来决定邮件地址不应该是唯一的。我推送了更改以使我的电子邮件字段不唯一(我使用 ORM,所以我实际上没有确切的 SQL),但 PG 仍然不允许我使用重复的电子邮件地址。
我检查了索引,它不是唯一的,但有一个约束条件阻止我拥有重复的电子邮件地址。但是,我在删除这个约束条件时遇到了麻烦。我做错了什么?
SQL> ALTER TABLE "users" DROP CONSTRAINT "unique_users_email"
PGError: ERROR: constraint "unique_users_email" of relation "users" does not exist
SQL> UPDATE users SET email = 'test@test.com'
PGError: ERROR: duplicate key value violates unique constraint "unique_users_email"
DETAIL: Key (email)=(test@test.com) already exists.
ALTER TABLE "users" disable CONSTRAINT "unique_users_email";
- jt234PGError: ERROR: 语法错误在或靠近“CONSTRAINT”处 第1行:ALTER TABLE "users" disable CONSTRAINT "unique_users_email";
我的更改似乎提交得很好,除了这个问题。 - AlexQueuepsql
中展示 "\d+ users" 的输出;在盲目工作时很难帮助您。这确实听起来像是一个奇怪的情况。您到底使用了哪个ORM?以及使用了什么版本的PostgreSQL? - Craig Ringer