在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.
Run Code Online (Sandbox Code Playgroud)
我敢打赌“unique_users_email”实际上是唯一索引的名称而不是约束。尝试:
DROP INDEX "unique_users_email";
\d在查看表的描述时,最新版本的 psql 应该会告诉您唯一索引和唯一约束之间的区别。
| 归档时间: |
|
| 查看次数: |
2189 次 |
| 最近记录: |