Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

PostgreSQL Error: Relation already exists

I am trying to create a table that was dropped previously.

But when I do the CREATE TABLE A ... I am getting below error:

Relation 'A' already exists.

I verified doing SELECT * FROM A, but then I got another error:

Relation 'A' does not exists.

I already tried to find it in \dS+ listing all relations, and it is not there.
To complicate this, I have tested this by creating this table in another database and I got the same error. I am thinking that could be an error when this table was dropped. Any ideas?

Here is the code: I'm using a generated code from Power SQL. I have the same error without using the sequence. It just works when I change the name and in this case I can not do that.

CREATE SEQUENCE csd_relationship_csd_relationship_id_seq; CREATE TABLE csd_relationship (     csd_relationship_id INTEGER NOT NULL DEFAULT nextval('csd_relationship_csd_relationship_id_seq'::regclass),       type_id INTEGER NOT NULL,     object_id INTEGER NOT NULL,     CONSTRAINT csd_relationship PRIMARY KEY (csd_relationship_id) ); 
like image 544
nsbm Avatar asked Jan 09 '12 17:01

nsbm


1 Answers

I finally discover the error. The problem is that the primary key constraint name is equal the table name. I don know how postgres represents constraints, but I think the error "Relation already exists" was being triggered during the creation of the primary key constraint because the table was already declared. But because of this error, the table wasnt created at the end.

like image 117
nsbm Avatar answered Sep 19 '22 14:09

nsbm