phpMyAdmin
 sql >> Teknologi Basis Data >  >> Database Tools >> phpMyAdmin

Bidang Tabel Referensi Mandiri Di MySQL

Salah satu opsi adalah menjadikan bidang Anda NULL -able, dan atur kunci induk catatan root ke 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)

Jika tidak, Anda masih dapat menggunakan NOT NULL kunci induk dan arahkan ke root record itu sendiri:

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. Kesalahan fatal:Kesalahan Tidak Tertangkap:Nama fungsi harus berupa string di C:\xampp\htdocs\em0126\app\code\core\Mage\Core\Model\Layout.php:555 Jejak tumpukan:#0

  2. Tidak dapat menginstal phpMyAdmin di CentOS 7 melalui shell

  3. phpmyadmin - Tidak dapat terhubung:pengaturan tidak valid

  4. Hapus spasi dan ganti dengan _ di phpMyAdmin

  5. Hubungan basis data menggunakan phpmyAdmin (kunci gabungan)