CONSTRAINT
Overview
- A constraint is a rule you add to your table to control what kind of data is allowed.
 - The word 
CONSTRAINTlets you give a name to that rule. - This name is useful for debugging or changing the rule later.
 
Example:
CONSTRAINT fk_relative FOREIGN KEY (`relative_id`) REFERENCES `persons`(`id`) ON DELETE CASCADE
This means:
"I'm adding a rule called fk_relative that says the relative_id must match an id in the persons table. Also, if that person is deleted, automatically delete this relationship too."
What happens:
- You can only insert 
person_idvalues that exist in thepersonstable. - If you try to insert a 
person_idthat doesn't exist, MySQL gives an error. - If the referenced person is deleted (and 
ON DELETE CASCADEis set), their relationships are also deleted automatically. 
Like:
You can only list friends who are already in your contact list. And if you remove a contact, their friendships disappear too.
  
  
  UNIQUE
Overview
- As you know, 
UNIQUEmeans "no duplicates allowd." - It ensures that the same combination of values doesn't appear more than once in that table.
 
Example:
CONSTRAINT `unique_releationship` UNIQUE (`person_id`, `relative_id`, `relationship_type`)
This means:
"You can't have two identical rows where the same person has the same relationship type with the same relative more than once."
You can't have two rows where person_id, relative_id, and relationship_type are all exactly the same.
Valid Example (no duplicates):
| id | person_id | relative_id | relationship_type | 
|---|---|---|---|
| 1 | A | B | parent | 
| 2 | B | A | child | 
| 3 | A | C | sibling | 
| 4 | A | B | sibling | 
Invalid Example (duplicate combination):
| id | person_id | relative_id | relationship_type | 
|---|---|---|---|
| 1 | A | B | parent | 
| 2 | A | B | parent | 
Summary:
| Keyword | Meaning | 
|---|---|
CONSTRAINT | 
Names a rule on the table (like foreign key or unique rule) | 
UNIQUE | 
Prevents duplicate values in one or more columns | 
    
Top comments (0)