phpMyAdmin
 sql >> Cơ Sở Dữ Liệu >  >> Database Tools >> phpMyAdmin

Các trường bảng tự tham chiếu trong MySQL

Một tùy chọn là đặt trường của bạn NULL -able, và đặt khóa cha của bản ghi gốc thành 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)

Nếu không, bạn vẫn có thể sử dụng NOT NULL khóa cha và trỏ nó đến bản ghi gốc:

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. máy chủ mysql xampp không khởi động

  2. Phần mở rộng mbstring bị thiếu. Vui lòng kiểm tra cấu hình PHP của bạn

  3. lỗi phpmyadmin 2002

  4. phpMyAdmin - Lỗi:các tính năng quan hệ bị tắt

  5. phpMyAdmin - Dấu ngã (~) trong cột hàng nghĩa là gì?