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

MySQL में विदेशी कुंजी (Foreign Key) बनाने का सिंटैक्स


MySQL में ALTER TABLE का उपयोग करके विदेशी कुंजी बनाना

विदेशी कुंजी बनाने का सही सिंटैक्स:

सिंटैक्स

ALTER TABLE yourSecondTableName
ADD CONSTRAINT yourConstraintName
FOREIGN KEY(yourForeignKeyColumnName)
REFERENCES yourFirstTableName(yourPrimaryKeyColumnName);

उदाहरण

पहले डिपार्टमेंट टेबल (पैरेंट):

mysql> create table Department_Table (
    -> Department_Id int not null auto_increment primary key,
    -> Department_Name varchar(30)
    -> );

फिर एम्प्लॉई टेबल (चाइल्ड):

mysql> create table Employee_Table (
    -> EmployeeID int not null auto_increment primary key,
    -> EmployeeName varchar(80),
    -> Job varchar(30),
    -> Department_Id int not null
    -> );

नोट: केवल Department_Id int not null references department(departmentID) लिखने से विदेशी कुंजी नहीं बनती। यह केवल एक टिप्पणी की तरह काम करता है।

विदेशी कुंजी जोड़ें:

mysql> alter table Employee_Table
    -> ADD CONSTRAINT fk_Department_Id
    -> FOREIGN KEY(Department_Id)
    -> REFERENCES Department_Table(Department_Id);

महत्वपूर्ण बिंदु

  • रेफरेंस कॉलम (Department_Table.Department_Id) प्राइमरी की या यूनिक की होना चाहिए
  • दोनों कॉलम का डेटा प्रकार समान होना चाहिए
  • InnoDB स्टोरेज इंजन आवश्यक है (MyISAM विदेशी कुंजी का समर्थन नहीं करता)
  • CONSTRAINT नाम वैकल्पिक है लेकिन अनुशंसित है

कैस्केड विकल्प

FOREIGN KEY(Department_Id) REFERENCES Department_Table(Department_Id)
    ON DELETE CASCADE
    ON UPDATE CASCADE
  • ON DELETE CASCADE: पैरेंट डिलीट होने पर चाइल्ड भी डिलीट
  • ON UPDATE CASCADE: पैरेंट अपडेट होने पर चाइल्ड भी अपडेट
  • अन्य विकल्प: SET NULL, RESTRICT, NO ACTION
  1. - MySQL में प्राइमरी की कैसे रीसेट करें?

    MySQL में ऑटो-इन्क्रीमेंट प्राइमरी की को रीसेट (1 से शुरू) करने के लिए, TRUNCATE TABLE का उपयोग करें जो डेटा हटाता है और ऑटो-इन्क्रीमेंट काउंटर रीसेट करता है, या ALTER TABLE से मैन्युअली सेट करें। विधि 1: TRUNCATE TABLE (सबसे सरल, डेटा हटाता है) टेबल बनाएं: mysql> CREATE TABLE DemoTable1929 (

  1. - MySQL में प्राइमरी की को कई टेबल में फॉरेन की के रूप में कैसे रेफ़र करें?

    ALTER TABLE ... ADD CONSTRAINT alter table yourSecondTableName add constraint `yourConstraintName` foreign key(`yourSecondTableNamePrimaryKey`) references yourFirstTableName(yourFirstTablePrimaryKeyColumnName); उदाहरण alter table demo66 add constraint `id_fk` foreign key(`user_id`) references

  1. - MySQL में विदेशी कुंजी का उपयोग करना

    आइए समझते हैं कि MySQL में विदेशी कुंजी का उपयोग कैसे किया जा सकता है: InnoDB टेबल विदेशी कुंजी कंस्ट्रेंट जांच का समर्थन करते हैं। दो टेबल को जोड़ने के लिए केवल एक विदेशी कुंजी कंस्ट्रेंट आवश्यक नहीं है। इसका उपयोग स्टोरेज इंजन के अलावा InnoDB के लिए उपयोग किए जाने वाले कॉलम को परिभाषित करते समय