【问题标题】:ERROR: relation "students" already EXISTS错误:关系“学生”已经存在
【发布时间】:2016-03-13 04:26:10
【问题描述】:

当我执行这个查询时:

CREATE TABLE public.students (
  id INTEGER PRIMARY KEY NOT NULL DEFAULT NEXTVAL('students_id_seq'::regclass),
  first_name CHARACTER VARYING(20) NOT NULL,
  last_name CHARACTER VARYING(20) NOT NULL,
  major CHARACTER VARYING(20) NOT NULL
);
CREATE UNIQUE INDEX "Students_ID_uindex" ON students USING BTREE (id);

SELECT * FROM public.students;

我收到以下错误:

[2016-03-12 22:16:54] Run postgres.public.students [PostgreSQL - postgres@localhost]
[2016-03-12 22:16:54] Connecting TO PostgreSQL - postgres@localhost...
CREATE TABLE public.students (
  id INTEGER PRIMARY KEY NOT NULL DEFAULT NEXTVAL('students_id_seq'::regclass),
  first_name CHARACTER VARYING(20) NOT NULL,
  last_name CHARACTER VARYING(20) NOT NULL,
  major CHARACTER VARYING(20) NOT NULL
)
[2016-03-12 22:16:54] [42P07] ERROR: relation "students" already EXISTS
CREATE UNIQUE INDEX "Students_ID_uindex" ON students USING BTREE (id)
[2016-03-12 22:16:54] [42P07] ERROR: relation "Students_ID_uindex" already EXISTS
SELECT * FROM public.students
[2016-03-12 22:16:54] Executed IN 14ms ms

[2016-03-12 22:16:54] Summary: 3 OF 3 statements executed, 2 failed IN 68ms (338 symbols IN file)

我使用 DataGrip 生成了表格:

知道我做错了什么吗?

更新:为了澄清我的问题,当我第一次使用新表名运行代码时,我现在得到错误,但是当我再次运行它时,我得到了上述错误。如何解决这个问题?

【问题讨论】:

    标签: sql postgresql datagrip


    【解决方案1】:

    您不能创建更多同名表 - 因此如果已经有同名表,则语句 CREATE 应该会失败。

    您可以在之前运行语句DROP TABLE - 但请注意! - 它会删除包含所有数据的表,并且 撤消 是不可能的。第二种选择是在CREATE 语句中使用子句IF NOT EXISTS

    DROP TABLE IF EXISTS foo;
    CREATE TABLE foo(a int);
    

    CREATE TABLE IF NOT EXISTS foo(a int);  
    

    【讨论】:

      【解决方案2】:

      您不需要使用索引名称,只需让PG自己制作即可:

      CREATE INDEX name ON public.students ("id");
      

      【讨论】:

      • 如果我现在想删除那个索引该怎么办?
      • @Strazan 抱歉,错过了答案。只有一种方法可以在您的数据库应用程序中查看它并使用DROP INDEX name
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2014-06-13
      • 2022-06-26
      • 1970-01-01
      • 1970-01-01
      • 2013-02-04
      • 2018-10-05
      • 2018-06-29
      相关资源
      最近更新 更多