【问题标题】:ERROR: column "username" of relation "public.ae_User" does not exist - Postgresql [duplicate]错误:关系“public.ae_User”的列“用户名”不存在-Postgresql [重复]
【发布时间】:2021-11-14 08:39:16
【问题描述】:

我正在学习 postgresql 并用大象 SQL 制作这张表:

CREATE TABLE "public.ae_User" (
    "Id" serial NOT NULL,
    "Name" character varying(30) NOT NULL,
    "Username" character varying(16) NOT NULL UNIQUE DEFAULT 'Guest',
    "Email" character varying(30) NOT NULL,
    "Password" character varying(120) NOT NULL,
    "Salt" character varying(40) NOT NULL,
    "User_type" int NOT NULL DEFAULT '0',
    "Deleted" BOOLEAN NOT NULL DEFAULT 'false',
    CONSTRAINT "ae_User_pk" PRIMARY KEY ("Id")
) WITH (
  OIDS=FALSE
);

但是当我尝试插入时:

INSERT INTO "public"."public.ae_User" (Name, Username, Email, Password, Salt, User_type, Deleted)
VALUES ("Miguel", "adminMiguel", "miguel@gmail.com", "admin", "bla", 3, false)

返回:

ERROR:  column "username" of relation "public.ae_User" does not exist
LINE 1: INSERT INTO "public"."public.ae_User" (Username, Email, Pass...

【问题讨论】:

    标签: postgresql quoted-identifier


    【解决方案1】:

    您应该在列名中使用双引号,因为 Postgres 将列折叠为小写。

    如果列包含大写字母(和/或其他语法违规),您必须使用 双引号

    另一方面,对于 text 或 varchar 数据已传递到您必须使用的列 单引号

    INSERT INTO "public"."public.ae_User" ("Name", "Username", "Email", "Password", "Salt", "User_type", "Deleted")
    VALUES ('Miguel', 'adminMiguel', 'miguel@gmail.com', 'admin', 'bla', 3, false)
    

    附注:

    在我看来,最好改变你的结构,如下所示:

    CREATE TABLE public."ae_User" (
        "Id" serial NOT NULL,
        "Name" character varying(30) NOT NULL,
        "Username" character varying(16) NOT NULL UNIQUE DEFAULT 'Guest',
        "Email" character varying(30) NOT NULL,
        "Password" character varying(120) NOT NULL,
        "Salt" character varying(40) NOT NULL,
        "User_type" int NOT NULL DEFAULT '0',
        "Deleted" BOOLEAN NOT NULL DEFAULT 'false',
        CONSTRAINT "ae_User_pk" PRIMARY KEY ("Id")
    ) WITH (
      OIDS=FALSE
    );
    
    INSERT INTO public."ae_User" ("Name", "Username", "Email", "Password", "Salt", "User_type", "Deleted")
    VALUES ('Miguel', 'adminMiguel', 'miguel@gmail.com', 'admin', 'bla', 3, false)
    

    【讨论】:

      【解决方案2】:

      你的错误在INSERT INTO "public"."public.ae_User" 被INSERT INTO "public"."ae_User"替换

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2023-04-01
        • 1970-01-01
        • 2019-05-08
        • 1970-01-01
        • 1970-01-01
        • 2014-12-25
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多