Hi all,
today I was tryng to delete an index but I had the following
error:

ERROR: cannot drop index activation_code_code_key because constraint activation_code_code_key on table activation_code requires it
HINT: You may drop constraint activation_code_code_key on table activation_code instead.



however this is what \d show:


# \d activation_code
Table "public.activation_code"
Column | Type | Modifiers


--------------------+-----------------------+---------------------------------------------------------------------------------
id_activation_code | integer | not null default nextval('public.activation_code_id_activation_code_seq'::text)
code | character varying(64) | not null
id_code_pool | integer | not null
Indexes:
"activation_code_pkey" primary key, btree (id_activation_code)
"activation_code_code_key" unique, btree (code, id_code_pool)
Check constraints:
"activation_code_code" CHECK (char_length(code::text) >= 5)
Foreign-key constraints:
"$1" FOREIGN KEY (id_code_pool) REFERENCES code_pool(id_code_pool) ON UPDATE CASCADE ON DELETE CASCADE




basically what is the difference between:

CREATE UNIQUE INDEX "activation_code_code_key" ON "public"."activation_code"
USING btree ("code", "id_code_pool");

or

ALTER TABLE activation_code ADD UNIQUE ( code, id_code_pool );

with \d command there is no difference but is different because the first command
create an index deleteable with a "drop index".




Regards Gaetano Mendola









---------------------------(end of broadcast)---------------------------
TIP 7: don't forget to increase your free space map settings

Reply via email to