Use one of not-null unique keys to identify rows when the target table doesn't
have a primary key. Some of users want to use not-null unique keys rather than primary keys because postgres doesn't support REINDEX PRIMARY KEY CONCURRENTLY. - Support 9.1dev. - Improve Makefile to use PGXS automatically.
This commit is contained in:
@ -130,3 +130,19 @@ SELECT oid, relname
|
||||
WHERE relkind = 'r'
|
||||
AND reltoastrelid <> 0
|
||||
AND reltoastrelid NOT IN (SELECT oid FROM pg_class WHERE relkind = 't');
|
||||
|
||||
--
|
||||
-- NOT NULL UNIQUE
|
||||
--
|
||||
CREATE TABLE tbl_nn (col1 int NOT NULL, col2 int NOT NULL);
|
||||
CREATE TABLE tbl_uk (col1 int NOT NULL, col2 int , UNIQUE(col1, col2));
|
||||
CREATE TABLE tbl_nn_uk (col1 int NOT NULL, col2 int NOT NULL, UNIQUE(col1, col2));
|
||||
CREATE TABLE tbl_pk_uk (col1 int NOT NULL, col2 int NOT NULL, PRIMARY KEY(col1, col2), UNIQUE(col2, col1));
|
||||
\! pg_reorg --dbname=contrib_regression --no-order --table=tbl_nn
|
||||
-- => ERROR
|
||||
\! pg_reorg --dbname=contrib_regression --no-order --table=tbl_uk
|
||||
-- => ERROR
|
||||
\! pg_reorg --dbname=contrib_regression --no-order --table=tbl_nn_uk
|
||||
-- => OK
|
||||
\! pg_reorg --dbname=contrib_regression --no-order --table=tbl_pk_uk
|
||||
-- => OK
|
||||
|
Reference in New Issue
Block a user