Appian Community and Appian Academy are being upgraded. As a part of the upgrade, Appian Community is currently in read-only mode, and user registration is disabled until August 3. We apologize for any inconvenience this may cause, but a more secure, stable, and performant Community experience is coming soon!

The new Appian Community launches August 3, followed by Appian Academy on August 7. During the migration, Appian Community Edition, Appian Academy, Documentation, Certifications, Instructor-led Customer Training, Partner Sales Training & Accreditation, and Forum (for Appian Partners and Customers only) will remain available.

Primary Key vs. Foreign Key vs. Unique Key

I know this is a very basic concept and I predominantly understand the purpose of a Primary Key and a Foreign Key. But as I've been learning the concept of a Unique Key came up and I was unable to find a resource that gives me a clear understanding of the purpose of a Unique Key. I would love it if someone co explain the difference while comparing it to Primary and Foreign Keys potentially with some examples if applicable.

  Discussion posts and replies are publicly visible

  • 0
    Certified Senior Developer

    primary key : evry row must have unique value. so we can identify row easily. so nulls cant be accepted and duplicate values also not allowed. 

    Foreign Key : easily represents the relation b/w tables. 

    Unique Key: mainly values has unique but null values allowed and duplicate values not allowed. eg: bank ac number or debit card numbers or vehicle number plates etc.. 

  • 0
    Certified Lead Developer

    Primary Key :

    • The primary key uniquely identifies each record in the table.
    • The primary key cannot have a NULL value. If the column(s) contain NULL values, the system will not add the primary key constraint.
    • The primary key cannot have duplicate values.
    • A table can have only one Primary Key.

    Example : 

    In the below STUDENT table "Roll_Number" is the Primary Key of the table. This Roll_Number can be used to uniquely identify the rows of a STUDENT table.

    Roll_Number Name Class Age Phone_Number Reg_Number
    101 Mark 7 14 1023456789 301
    102 Flex 7 14 1123456789 302
    103 Scott 7 13   303

    Unique Key : 

    • Unique Key is a key which has a unique value and is used to prevent duplicate values in a column.
    • Primary key also has a unique value for each column.
    • A unique key can have a NULL value which is not allowed in a primary key .
    • If we have a value present then either it would be unique or no value would be present at all.
    • Main motive of a unique key in a table is to prevent duplicate values.
    • A table can have multiple Unique Key.

    Example : In the above table, we have Phone_Number as the Unique Key and Roll_Number as the Primary Key. If any student has a Phone_Number then it should be unique. Also, there might be some student who doesn't have any Phone_Number. In the table the Student Scott do not have a Phone Number. 

    Note : 

    • Primary Key is used to uniquely identify a row but a Unique Key is used to prevent duplicate values in a column.
    • A Table can have only one primary key but it can have multiple unique keys. In the above Student Table, we have only one Primary Key i.e Roll_Number but we have two Unique Key i.e Phone_Number and Reg_Number. 

    Foreign Key : 

    • A foreign key establishes a relationship between tables by referencing the primary key of another table. 
    • A table may have multiple foreign keys
    • Foreign keys establish relationships between tables, ensuring that data matches up correctly and maintains order.
  • Hi   

    Primary Key: A primary key uniquely identifies each record in a table. Each value in the primary key column must be unique. primary key cannot contain NULL values. Every record must have a value for the primary key. The primary key is defined within a single table.

    Foreign Key:  A foreign key is a column or set of columns in one table that refers to the primary key in another table. It establishes a relationship between the two tables. Foreign keys can contain NULL values, depending on the design of the database. The foreign key is defined in a child table and references the primary key of a parent table.