Database Research & Development

  • Home
  • NoSQL
    • NoSQL
    • Cassandra
  • Databases
    • Database Theory
    • Database Designing
    • SQL Server Coding Standards
    • SQL Server
    • PostgreSQL
    • MySQL
    • Greenplum
    • Linux
  • Interviews
    • SQL Server Interviews
    • MySQL Interviews
    • SQL Puzzles
  • DBA Scripts
    • SQL Server DBA Scripts
    • PostgreSQL DBA Scripts
    • MySQL DBA Scripts
    • Greenplum DBA Scripts
  • Home
  • Blog Archives !
  • (: Laugh@dbrnd :)
  • Contact Me !
sqlserverinterviews
Home 2016 August PostgreSQL: Example of Partial UNIQUE Composite Index

PostgreSQL: Example of Partial UNIQUE Composite Index

This article is half-done without your Comment! *** Please share your thoughts via Comment ***

The Data validation is always a major concern of any Database System.
We all know about the UNIQUE constraint which prevents the duplicate records.

One of the Previous article, I have already shared one small note about the UNIQUE Index of PostgreSQL.

PostgreSQL: Composite UNIQUE Constraint does not consider NULL Values

In this post, I am sharing a similar post for Partial Unique Index of PostgreSQL.

For example, I want to stop duplicate Student Grages for particular Student Division only.

Create a sample table:

1
2
3
4
5
6
7
CREATE TABLE tbl_Students
(
StudID INT
,StudName CHARACTER VARYING
,StudDivision CHARACTER VARYING
,StudGrade CHAR(1)
);

Create a Partial UNIQUE Index:

1
2
CREATE UNIQUE INDEX tbl_Students_StudGrade ON tbl_Students (COALESCE(StudDivision,''),COALESCE(StudGrade,''))
WHERE StudDivision IN ('First','Second','Third');

Insert few sample records:
As we have creted Partial index so we can insert only unique combination of StudDivision (First,Second,Third) and StudGrade.

1
2
3
4
5
6
7
8
INSERT INTO tbl_Students
VALUES
(1,'Anvesh','First','A')
,(2,'Jeeny','Second','B')
,(3,'Roy','Third','B')
,(4,'Mukesh','First','C')
,(5,'Martin','Second','C')
,(6,'Kavita','Third','A');

Try to insert few Invalid records:

1
2
3
4
INSERT INTO tbl_Students
VALUES
(7,'Rajesh','First','A')
,(8,'Nile','Second','B');

Try to insert few records which are not validated by Partition Index:
We can insert duplicate records StudGrade + StudDivision for other StudDivisions except Partial StudDivision.

1
2
3
4
INSERT INTO tbl_Students
VALUES
(7,'Dimpi','Fourth','C')
,(8,'Bony','Fourth','C');

Aug 22, 2016Anvesh Patel
PostgreSQL: Optimized way to populate new Column (UUID) in a Large TablePostgreSQL: Example of Trigram Index for Full Text Search using pg_trgm Extension
Anvesh Patel
Anvesh Patel

Database Engineer

August 22, 2016 PostgreSQLAnvesh Patel, database, database research and development, dbrnd, Partial Index Constraint, plpgsql, Postgres Query, postgresql, PostgreSQL Administrator, PostgreSQL Error, PostgreSQL Programming, PostgreSQL Tips and Tricks, UNIQUE CONSTRAINT
About Me!

I'm Anvesh Patel, a Database Engineer certified by Oracle and IBM. I'm working as a Database Architect, Database Optimizer, Database Administrator, Database Developer. Providing the best articles and solutions for different problems in the best manner through my blogs is my passion. I have more than six years of experience with various RDBMS products like MSSQL Server, PostgreSQL, MySQL, Greenplum and currently learning and doing research on BIGData and NoSQL technology. -- Hyderabad, India.

About DBRND !

dbrnd

This is a personal blog (www.dbrnd.com).

Any views or opinions represented in this blog are personal and belong solely to the blog owner and do not represent those of people, institutions or organizations that the owner may or may not be associated with in professional or personal capacity, unless explicitly stated.

Feel free to challenge me, disagree with me, or tell me I’m completely nuts in the comments section of each blog entry, but I reserve the right to delete any comment for any reason whatsoever (abusive, profane, rude, or anonymous comments) - so keep it polite.

The content of this website is protected by copyright. No portion of this website may be copied or replicated in any form without the written consent of the website owner.

Recent Comments !
  • Anvesh Patel { Sure will do... } – May 27, 12:43 PM
  • Anvesh Patel { Great... } – May 27, 12:41 PM
  • Anvesh Patel { Great... } – May 27, 12:39 PM
  • Anvesh Patel { Great... } – May 27, 12:36 PM
  • Anvesh Patel { Great... } – May 27, 12:28 PM
  • Anvesh Patel { Great... } – May 27, 12:27 PM
  • Anvesh Patel { Great... } – May 27, 12:16 PM
  • Older »
Follow Me !
  • facebook
  • linkedin
  • twitter
  • youtube
  • google
  • flickr
© 2015 – 2019 All rights reserved. Database Research & Development (dbrnd.com)
Posting....