phpMyAdmin
 sql >> डेटाबेस >  >> Database Tools >> phpMyAdmin

MySQL में सेल्फ-रेफरेंशियल टेबल फील्ड्स

एक विकल्प यह है कि आप अपने क्षेत्र को NULL . बनाएं -सक्षम, और रूट रिकॉर्ड की मूल कुंजी को NULL . पर सेट करें :

CREATE TABLE tb_1 (
   id       int   NOT NULL  PRIMARY KEY,
   value    int   NOT NULL,
   parent   int   NULL,
   FOREIGN KEY (parent) REFERENCES tb_1(id)
) ENGINE=INNODB;
Query OK, 0 rows affected (0.43 sec)

-- This fails:
INSERT INTO tb_1 VALUES (1, 1, 0);
ERROR 1452 (23000): A foreign key constraint fails.

-- This succeeds:
INSERT INTO tb_1 VALUES (1, 1, NULL);
Query OK, 1 row affected (0.08 sec)

अन्यथा आप अभी भी NOT NULL . का उपयोग कर सकते हैं पैरेंट कुंजी और इसे रूट रिकॉर्ड पर ही इंगित करें:

CREATE TABLE tb_2 (
   id       int   NOT NULL  PRIMARY KEY,
   value    int   NOT NULL,
   parent   int   NOT NULL,
   FOREIGN KEY (parent) REFERENCES tb_2(id)
) ENGINE=INNODB;
Query OK, 0 rows affected (0.43 sec)

-- This fails:
INSERT INTO tb_2 VALUES (1, 1, 0);
ERROR 1452 (23000): A foreign key constraint fails.

-- This succeeds:
INSERT INTO tb_2 VALUES (1, 1, 1);
Query OK, 1 row affected (0.08 sec)


  1. DBeaver
  2.   
  3. phpMyAdmin
  4.   
  5. Navicat
  6.   
  7. SSMS
  8.   
  9. MySQL Workbench
  10.   
  11. SQLyog
  1. phpmyadmin में दूरस्थ लॉगिन को कैसे निष्क्रिय करें

  2. PHP7 Apache/2.4.7 (उबंटू) पर phpmyadmin स्थापित करने में समस्या आ रही है

  3. त्रुटि:'ईमेल' कुंजी के लिए डुप्लिकेट प्रविष्टि ''

  4. खोज समारोह php . में काम नहीं कर रहा

  5. क्या एक MySQL डेटाबेस में सभी डेटा को दूसरे में कॉपी करने का कोई तरीका है? (phpmyadmin)