Computer >> कंप्यूटर ट्यूटोरियल >  >> प्रोग्रामिंग >> SQL Server

SQL Server में फॉरेन की SET NULL के साथ

SQL Server में फॉरेन की SET NULL ऑन डिलीट के साथ

निम्नलिखित ट्यूटोरियल SQL Server में फॉरेन की के SET NULL ऑन डिलीट कंस्ट्रेंट को समझाएगा।

SQL Server में डिलीट पर SET NULL के साथ फॉरेन की क्या है?

फॉरेन कीज़ जो डिलीट पर NULL सेट करने के लिए बाध्य हैं, का अर्थ है कि जब पैरेंट टेबल में एक रिकॉर्ड हटाया जाता है, तो फॉरेन की मान फ़ील्ड में चाइल्ड टेबल में संबंधित रिकॉर्ड को NULL पर सेट कर दिया जाएगा। चाइल्ड टेबल में लिखी गई टेबल को SQL Server से नहीं हटाया जाएगा।

डिलीट होने पर NULL मान की शर्त वाली फॉरेन कीज़ को CREATE TABLE या ALTER TABLE स्टेटमेंट के साथ बनाया जा सकता है।

CREATE TABLE स्टेटमेंट के साथ डिलीट होने पर NULL मान सेट करने के कंस्ट्रेंट के साथ फॉरेन की बनाएं

सिंटैक्स

CREATE TABLE bang_con
(
cot1 kieudulieu [ NULL | NOT NULL ],
cot2 kieudulieu [ NULL | NOT NULL ],
…
CONSTRAINT fk_ten
FOREIGN KEY (cot_con1, cot_con2, … cot_con_n)
REFERENCES bang_me (cot_me1, cot_me2, … cot_me_n)
ON DELETE SET NULL
[ ON UPDATE { NO ACTION | CASCADE | SET NULL | SET DEFAULT } ]
);

bang_con

बनाने के लिए चाइल्ड टेबल का नाम।

cot1, cot2

टेबल में बनाने के लिए कॉलम। प्रत्येक कॉलम का 1 डेटा प्रकार होता है, NULL या NOT NULL मान समाहित करने के लिए निर्दिष्ट किया जाना चाहिए, अन्यथा डिफ़ॉल्ट NULL है।

SQL Server में डेटा प्रकार

fk_ten

बनाने के लिए फॉरेन की कंस्ट्रेंट का नाम।

cot_con1, cot_con2, ... cot_con_n

bang_con में वह कॉलम जो bang_me में प्राइमरी की को संदर्भित करना चाहता है।

bang_me

पैरेंट टेबल का नाम जिसमें bang_con में उपयोग की जाने वाली प्राइमरी की होती है।

cot_me1, cot_me2, ... cot_me_n

bang_me में प्राइमरी की बनाने वाला कॉलम। फॉरेन कीज़ bang_con में cot_con1, cot_con2, ... cot_con_n कॉलम्स और डेटा के बीच कंस्ट्रेंट बनाएंगी।

ON DELETE SET NULL

चाइल्ड टेबल में डेटा को NULL पर सेट किया जाएगा जब पैरेंट टेबल में डेटा हटाया जाता है। सब-डेटा हटाया नहीं जाता।

ON UPDATE

वैकल्पिक। जब पैरेंट डेटा अपडेट किया जाता है तो चाइल्ड डेटा के साथ क्या करना है दर्शाता है। विकल्प: NO ACTION, CASCADE, SET NULL, SET DEFAULT।

NO ACTION

ON DELETE या ON UPDATE के साथ उपयोग, यानी पैरेंट डेटा हटाए या अपडेट होने पर चाइल्ड डेटा के साथ कुछ न करें।

CASCADE

ON DELETE या ON UPDATE के साथ उपयोग, अर्थात चाइल्ड डेटा हटाया या अपडेट किया जाता है जब पैरेंट डेटा हटाया या अपडेट किया जाता है।

SET NULL

ON DELETE या ON UPDATE के साथ उपयोग, अर्थात चाइल्ड डेटा को NULL पर सेट किया जाता है जब पैरेंट डेटा हटाया या अपडेट किया जाता है।

SET DEFAULT

ON DELETE या ON UPDATE के साथ उपयोग, अर्थात चाइल्ड डेटा को डिफ़ॉल्ट मान पर सेट किया जाता है जब पैरेंट डेटा हटाया या अपडेट किया जाता है।

उदाहरण

CREATE TABLE sanpham
( id_sanpham INT PRIMARY KEY,
ten_sanpham VARCHAR(50) NOT NULL,
phan_loai VARCHAR(25)
);

CREATE TABLE hangtonkho
( id_hangtonkho INT PRIMARY KEY,
id_sanpham INT,
soluong INT,
luong_toithieu INT,
luong_toida INT,
CONSTRAINT fk_htk_id_sanpham
FOREIGN KEY (id_sanpham)
REFERENCES sanpham (id_sanpham)
ON DELETE SET NULL
);

इस उदाहरण में, हमने पैरेंट टेबल, sanpham बनाई, जिसमें सूचना फ़ील्ड id_sanpham सहित प्राइमरी की है। फिर एक चाइल्ड टेबल है जिसका नाम hangtonkho है जिसमें डिलीशन कंस्ट्रेंट के साथ फॉरेन की है। CREATE TABLE स्टेटमेंट hangtonkho टेबल पर fk_htk_id_sanpham नामक फॉरेन की बनाता है। फॉरेन की hangtonkho टेबल में id_sanpham कॉलम और sanpham टेबल में id_sanpham के बीच संबंध बनाती है।

यह फॉरेन की ON DELETE SET NULL निर्दिष्ट करती है ताकि SQL Server को बताया जा सके कि जब पैरेंट टेबल में डेटा हटाया जाता है तो चाइल्ड टेबल में संबंधित रिकॉर्ड मान को NULL पर सेट करना आवश्यक है। इस उदाहरण में, जब id_sanpham को sanpham टेबल से हटाया जाता है, तो hangtonkho टेबल में id_sanpham का उपयोग करने वाला संबंधित रिकॉर्ड NULL पर सेट हो जाएगा।

यह ध्यान रखना महत्वपूर्ण है कि चूंकि hangtonkho टेबल में id_sanpham कॉलम को NULL पर सेट किया जाएगा, यह सुनिश्चित करना आवश्यक है कि इस कॉलम को NULL मान प्राप्त करने की अनुमति है। यदि CREATE के साथ बनाते समय NOT NULL पर सेट किया जाता है, तो निम्न त्रुटि का सामना करना पड़ेगा।

CREATE TABLE hangtonkho
( id_hangtonkho INT PRIMARY KEY,
id_sanpham INT NOT NULL,
soluong INT,
luong_toithieu INT,
luong_toida INT,
CONSTRAINT fk_htk_id_sanpham
FOREIGN KEY (id_sanpham)
REFERENCES sanpham (id_sanpham)
ON DELETE SET NULL
);

Msg 1761, Level 16, State 0, Line 1
Cannot create the foreign key 'fk_htk_id_sanpham' with the SET NULL referential action, because one or more referencing columns are not nullable.

Msg 1750, Level 16, State 0, Line 1
Could not create constraint or index. See previous error.

सुनिश्चित करें कि आप hangtonkho टेबल में id_sanpham कॉलम को NULL मान प्राप्त करने के लिए परिभाषित करते हैं जैसा कि नीचे दिखाया गया है।

CREATE TABLE hangtonkho
( id_hangtonkho INT PRIMARY KEY,
id_sanpham INT,
soluong INT,
luong_toithieu INT,
luong_toida INT,
CONSTRAINT fk_htk_id_sanpham
FOREIGN KEY (id_sanpham)
REFERENCES sanpham (id_sanpham)
ON DELETE SET NULL
);

Command(s) completed successfully.

ALTER TABLE स्टेटमेंट के साथ डिलीट होने पर NULL मान सेट करने के कंस्ट्रेंट के साथ फॉरेन की बनाएं

सिंटैक्स

ALTER TABLE bang_con
ADD CONSTRAINT fk_ten
FOREIGN KEY (cot_con1, cot_con2, ... cot_con_n)
REFERENCES bang_me (cot_me1, cot_me2, ... cot_me_n)
ON DELETE SET NULL;

bang_con

बनाने के लिए चाइल्ड टेबल का नाम।

fk_ten

बनाने के लिए फॉरेन की कंस्ट्रेंट का नाम।

cot_con1, cot_con2, ... cot_con_n

bang_con में वह कॉलम जो bang_me में प्राइमरी की को संदर्भित करना चाहता है।

bang_me

पैरेंट टेबल का नाम जिसमें bang_con में उपयोग की जाने वाली प्राइमरी की होती है।

cot_me1, cot_me2, ... cot_me_n

bang_me में प्राइमरी की बनाने वाला कॉलम। फॉरेन कीज़ bang_con में cot_con1, cot_con2, ... cot_con_n कॉलम्स और डेटा के बीच कंस्ट्रेंट बनाएंगी।

ON DELETE SET NULL

निर्दिष्ट करता है कि पैरेंट टेबल में डेटा हटाए जाने पर चाइल्ड डेटा को NULL मान पर सेट किया जाएगा। चाइल्ड टेबल में डेटा हटाया नहीं जाएगा।

उदाहरण

ALTER TABLE hangtonkho
ADD CONSTRAINT fk_htk_id_sanpham
FOREIGN KEY (id_sanpham)
REFERENCES sanpham (id_sanpham)
ON DELETE SET NULL;

इस उदाहरण में, hangtonkho चाइल्ड टेबल को fk_htk_id_sanpham नामक फॉरेन की के साथ बनाया गया है, जो id_sanpham के आधार पर पैरेंट टेबल sanpham को संदर्भित करता है।

ON DELETE SET NULL निर्दिष्ट करना SQL Server के लिए यह समझने के लिए है कि जब पैरेंट टेबल में id_sanpham डेटा हटाया जाता है, तो hangtonkho चाइल्ड टेबल में संबंधित रिकॉर्ड को NULL मान पर सेट किया जाएगा।

  1. Management Studio के साथ MS SQL Server प्रबंधित करें Management Studio के साथ MS SQL Server प्रबंधित करें

    Management Studio के साथ MS SQL Server प्रबंधित करें SQL Server Management Studio SQL Server में एक टूल है यदि आप इंस्टॉल करते समय चुनते हैं। यह टूल कमांड लाइन का उपयोग करने के बजाय ग्राफिकल इंटरफेस पर SQL Server से कनेक्ट और प्रबंधित करने में मदद करता है। रिमोट SQL Server इंस्टॉलेशन से कनेक्ट करने

  1. - MS SQL Server क्या है?

    SQL Server क्या है? Microsoft द्वारा विकसित सॉफ़्टवेयर जो RDBMS पर आधारित है। यह एक ORDBMS (Object Relational Database Management System) भी है। एक स्वतंत्र प्लेटफ़ॉर्म। सॉफ़्टवेयर कमांड लाइन इंटरफेस और GUI इंटरफेस दोनों का उपयोग करता है। SQL भाषा समर्थन (पूर्व में SEQUEL - स्ट्रक्चर्ड इंग्लिश क्वे

  1. Microsoft SQL सर्वर में डेटाबेस के साथ बुनियादी ऑपरेशन्स Microsoft SQL सर्वर में डेटाबेस के साथ बुनियादी ऑपरेशन्स

    नमस्कार सभी को, पिछले पोस्ट्स में, मैंने SSMS (SQL सर्वर मैनेजमेंट स्टूडियो) के माध्यम से SQL सर्वर से कनेक्शन स्थापित किया है। इस अगले लेख में, मैं SQL सर्वर मैनेजमेंट स्टूडियो इंटरफेस टूल के माध्यम से SQL सर्वर में डेटाबेस के साथ सबसे बुनियादी ऑपरेशन्स के बारे में और जानूंगा। ठीक है, शुरू करते हैं