【问题标题】:delete a row that is created by django using PHPPgAdmin?删除 django 使用 PHPPgAdmin 创建的行?
【发布时间】:2014-03-24 22:03:42
【问题描述】:

使用 django,我在表中添加了一个新条目。现在我想使用PHPPgAdmin (postgresql) 删除它,但我收到No unique Identifier for this row 错误。有什么问题?

django 自动添加了一个自增主键,所以我不知道是什么问题?

我读了this post,,但没有帮助。如果你仔细观察图片,你会看到主键列标签是id,而不是pk,因为它应该在django中。

编辑:表上没有主键;

但这就是 django 执行的;

python manage.py sql auth

CREATE TABLE "auth_user" (
    "id" serial NOT NULL PRIMARY KEY,
    "password" varchar(128) NOT NULL,
    "last_login" timestamp with time zone NOT NULL,
    "is_superuser" boolean NOT NULL,
    "username" varchar(30) NOT NULL UNIQUE,
    "first_name" varchar(30) NOT NULL,
    "last_name" varchar(30) NOT NULL,
    "email" varchar(75) NOT NULL,
    "is_staff" boolean NOT NULL,
    "is_active" boolean NOT NULL,
    "date_joined" timestamp with time zone NOT NULL
)
;

编辑:来自 PHPPgAdmin 的屏幕截图,显示 id 作为主键

【问题讨论】:

  • 我假设您的屏幕截图是 PHPPgAdmin。如果您使用psql 运行\d thetablename,输出是什么?它是否显示 PRIMARY KEY
  • @CraigRinger:请查看更新。
  • PRIMARY KEY 列在表格列之后;检查那里。
  • 我将PRIMARY KEY 视为id
  • 你能从 psql 中删除行吗?如果是这样,这可能是 phppgadmin 中的一个错误(请不要将其与实际的 pgadmin 混淆)。

标签: django postgresql delete-row phppgadmin


【解决方案1】:

我认为这是 phpPgAdmin 的一个错误。

我遇到了类似的问题,直接进入psql(使用命令./manage.py dbshell)。

我尝试删除有问题的行,并收到比来自 phpPgAdmin 的错误消息更有帮助的错误消息。 (在我的情况下,该行被另一个表引用。)

我删除了另一个表引用的行,然后能够删除有问题的行。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2023-03-22
    • 2016-01-20
    • 1970-01-01
    • 2021-04-22
    • 2023-04-10
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多