Sunday, November 6, 2016

Lesson 12 SQL Cascading Referential Integrity in Hindi

Lesson 12 SQL Cascading Referential Integrity in Hindi


इस Video में हम  cascading Referential Integrity के बारेमे सीखेंगे लेकिन पहेले आप निचे दिए गए जरुर देख ले.

Recommended Video
Lesson – 4 Primary Key and Foreign key

पहेले हम जरुरी Table बना लेते है.


Create Table tblContactGroup
(
      ID int primary key,
      GroupName nvarchar(50)
)

insert into tblContactGroup values(1, 'Customer')
insert into tblContactGroup values(2, 'Freinds')
insert into tblContactGroup values(3, 'Family')
insert into tblContactGroup values(4, 'Other')

Create Table tblContact
(
      ContactID int primary key identity(1,1),
      Name nvarchar(50) Not Null,
      PhoneNumber nvarchar(15),
      GroupID int references tblContactGroup(ID) 
      Constraint DF_tblContact_GroupID Default(4)
)

insert into tblContact values('Sunil', '+91 9327514434', 1)
insert into tblContact values('Kapil', '0261 2505318', 2)
insert into tblContact values('Farhan', '+91 9173546430', 1)
insert into tblContact values('Ali', '+91 9723992780', 1)
insert into tblContact values('Vanita', '+91 9978804972', 2)
insert into tblContact values('Hari', '+91 9904378128', 4)
insert into tblContact values('Krupa', '+91 9904378128', 4)
insert into tblContact values('Rajan', '+91 9904378128', 3)
insert into tblContact values('Jayesh', '+91 9904378128', 3)

Select * from tblContact
Select * from tblContactGroup


यहाँ पर दो Table Primary key और Foreign key से जुड़े है. अब अगर tblContactGroup टेबल में से 1 नम्बर की ID वाला रिकॉर्ड डिलीट कर दिया जाये तो tblContact टेबल में ID 1, 3 और 4 के लिये GroupID कोलम में समस्या खड़ी होगी अतः tblContactGroup में से 1 नम्बर ID वाला रिकॉर्ड डिलीट करने पर Error आएगी और रिकॉर्ड डिलीट नहीं होगा.

Delete from tblContactGroup Where ID=1



इस समस्या के दो उपाय है

Solution – 1

पहेले tblContact में से GroupID 1 वाले सारे Record डिलीट कर दो फिर आप tblContactGroup में से ID 1 वाला रिकॉर्ड डिलीट कर सकते हो.

Delete from tblContact Where GroupID = 1

Delete from tblContactGroup Where ID = 1

Select * from tblContact
Select * from tblContactGroup
 
पर अगर tblContact के रिकॉर्ड डिलीट नही करने हो तो 

Solution – 2

tblContact की Foreign Key  के लिये Delete Rule और Update Rule सेट कर दो.

Rule सेट करने के लिये

Object Explorer में tabel को Expand करे और Foreign key के ऊपर डबल क्लिक करे. या फिर Right Click करके Modify Option पर क्लिक करे.



 

Delete Rule और Update Rule के लिये 4 Option है.


1. No Action

By Default यह Rule सेट होता है. इनसे Delete या Update करनेका प्रयत्न करने पर अगर फोरेन की से रिकॉर्ड जुडा पाया जाता है तो Delete या Update नहीं होगा Error आएगी

2. Cascade

यह Rule सेट करने से Delete या Update करनेका प्रयत्न करने पर फोरेंन की से जुड़े जितने भी रिकॉर्ड होगे वह सारे रिकॉर्ड भी Delete या Update हो जायेंगे

3. Set Null

यह Rule सेट करने से Delete या Update करनेका प्रयत्न करने पर फोरेंन की से जुड़े जितने भी रिकॉर्ड होगे वह सारे रिकॉर्ड में NULL वेलु सेट हो जाएगी

4. Set Default

यह Rule सेट करने से Delete या Update करनेका प्रयत्न करने पर फोरेंन की से जुड़े जितने भी रिकॉर्ड होगे वह सारे रिकॉर्ड में Default Constraint वेलु सेट हो जाएगी


 

No comments:

Post a Comment