You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Postgres has an optimization that stops the creation of duplicate indexes in the case of a Unique constraint being applied to the primary key. So the following two DML statements are not equivalent:
This is how we migrate users to the new primary key:
CREATE TABLE IF NOT EXISTS "aws_table_initial" (
"_cq_id" uuid UNIQUE NOT NULL,
"account_id" text,
CONSTRAINT "aws_table_initial_cqpk" PRIMARY KEY ("account_id")
)
ALTER TABLE aws_table_initial DROP CONSTRAINT aws_table_initial_cqpk
ALTER TABLE aws_table_initial ADD CONSTRAINT aws_table_initial_cqpk PRIMARY KEY ("_cq_id")
Creating a new table with only _cq_id as the PK:
CREATE TABLE IF NOT EXISTS "aws_table_initial_v2" (
"_cq_id" uuid UNIQUE NOT NULL,
"account_id" text,
CONSTRAINT "aws_table_initial_cqpk" PRIMARY KEY ("_cq_id")
)
Statement (1) results in two constraints on cq_id (aws_table_initial_cqpk and aws_table_initial__cq_id_key) while statement (2) results in only a single constraint aws_table_initial_v2_cqpk
The text was updated successfully, but these errors were encountered:
Postgres has an optimization that stops the creation of duplicate indexes in the case of a Unique constraint being applied to the primary key. So the following two DML statements are not equivalent:
This is how we migrate users to the new primary key:
Statement (1) results in two constraints on cq_id (
aws_table_initial_cqpk
andaws_table_initial__cq_id_key
) while statement (2) results in only a single constraintaws_table_initial_v2_cqpk
The text was updated successfully, but these errors were encountered: