Heim  >  Artikel  >  Datenbank  >  So fragen Sie Fremdschlüsseleinschränkungen in MySQL ab

So fragen Sie Fremdschlüsseleinschränkungen in MySQL ab

WBOY
WBOYOriginal
2022-05-16 17:07:407826Durchsuche

In MySQL können Sie die Show-Anweisung verwenden, um Datenbank-, Tabellen- und Spalteninformationen in MySQL anzuzeigen. Die Syntax lautet „SHOW CREATE TABLE Table Name“. in der Tabelle, Fremdschlüsseleinschränkungen, Nicht-Null-Einschränkungen und andere Einschränkungsinformationen.

So fragen Sie Fremdschlüsseleinschränkungen in MySQL ab

Die Betriebsumgebung dieses Tutorials: Windows10-System, MySQL8.0.22-Version, Dell G3-Computer.

So fragen Sie Fremdschlüsseleinschränkungen in MySQL ab

Der Befehl mysqlshow wird verwendet, um Datenbank-, Tabellen- und Spalteninformationen auf dem MySQL-Server anzuzeigen.

In MySQL können Sie die SHOW CREATE TABLE-Anweisung verwenden, um die Einschränkungen in der Tabelle anzuzeigen und dann die Fremdschlüsseleinschränkungen abzufragen.

Sehen Sie sich das Format der Einschränkungssyntax in der Datentabelle wie folgt an:

SHOW CREATE TABLE <数据表名>;

Das Beispiel lautet wie folgt:

mysql> CREATE TABLE tb_emp8
    -> (
    -> id INT(11) PRIMARY KEY,
    -> name VARCHAR(22) UNIQUE,
    -> deptId INT(11) NOT NULL,
    -> salary FLOAT DEFAULT 0,
    -> CHECK(salary>0),
    -> FOREIGN KEY(deptId) REFERENCES tb_dept1(id)
    -> );
Query OK, 0 rows affected (0.37 sec)
mysql> SHOW CREATE TABLE tb_emp8 \G
*************************** 1. row ***************************
       Table: tb_emp8
Create Table: CREATE TABLE `tb_emp8` (
  `id` int(11) NOT NULL,
  `name` varchar(22) DEFAULT NULL,
  `deptId` int(11) NOT NULL,
  `salary` float DEFAULT &#39;0&#39;,
  PRIMARY KEY (`id`),
  UNIQUE KEY `name` (`name`),
  KEY `deptId` (`deptId`),
  CONSTRAINT `tb_emp8_ibfk_1` FOREIGN KEY (`deptId`) REFERENCES `tb_dept1` (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=gb2312
1 row in set (0.19 sec)

Erweiterte Kenntnisse:

Definition von Fremdschlüsseleinschränkungen

Mysql-Fremdschlüsseleinschränkung (FOREIGN KEY) ist eine Spezielles Feld der Tabelle. Wird häufig mit Primärschlüsseleinschränkungen verwendet. Bei zwei Tabellen mit einer zugehörigen Beziehung ist die Tabelle, in der sich der Primärschlüssel im zugehörigen Feld befindet, die Haupttabelle (übergeordnete Tabelle) und die Tabelle, in der sich der Fremdschlüssel befindet, die sekundäre Tabelle (untergeordnete Tabelle).

Angenommen, wir Es gibt zwei Tabellen, nämlich Tabelle A und Tabelle B, die über ein gemeinsames Feld „id“ miteinander verbunden sind. Wir nennen diese Beziehung R. Wenn „id“ der Primärschlüssel in Tabelle A ist, dann ist Tabelle A die Primärtabelle in dieser Beziehung R. Dementsprechend ist Tabelle B die Slave-Tabelle in dieser Beziehung, und die „ID“ in Tabelle B ist das, was Tabelle B verwendet, um auf die Daten in Tabelle A zu verweisen, was als Fremdschlüssel bezeichnet wird. Daher ist der Fremdschlüssel das öffentliche Feld, das in der Slave-Tabelle verwendet wird, um auf die Daten in der Master-Tabelle zu verweisen. Die Rolle von Fremdschlüsseleinschränkungen kann uns dabei helfen, die Fremdschlüsselfelder in der Slave-Tabelle und den Primärschlüssel zu bestimmen Die Referenzbeziehung zwischen ihnen kann auch sicherstellen, dass die Daten der Haupttabelle, auf die die Daten in der Slave-Tabelle verweisen, nicht gelöscht werden, wodurch die Konsistenz der Daten in den beiden Tabellen sichergestellt wird.

Wenn ein Datensatz gelöscht wird In der Haupttabelle muss auch der entsprechende Datensatz aus der Tabelle Datensätze entsprechend geändert werden. Eine Tabelle kann einen oder mehrere Fremdschlüssel haben, und der Fremdschlüssel kann ein Nullwert sein. Wenn es sich nicht um einen Nullwert handelt, muss der Wert jedes Fremdschlüssels einem bestimmten Wert des Primärschlüssels in der Haupttabelle entsprechen. Allerdings gibt es Fremdschlüsseleinschränkungen. Es ist kostspielig, erfordert Systemressourcen und ist möglicherweise nicht für große gleichzeitige SQL-Operationen geeignet. Daher können Sie mit MySQL die Logik zur Überprüfung der Datenkonsistenz auf Anwendungsebene vervollständigen, ohne die mit dem System verbundenen Fremdschlüsseleinschränkungen zu verwenden. Dies ist auch der Grund, warum wir verwandte Abfragen durchführen können, auch wenn wir keine Fremdschlüssel festlegenEmpfohlenes Lernen:

MySQL-Video-Tutorial

Das obige ist der detaillierte Inhalt vonSo fragen Sie Fremdschlüsseleinschränkungen in MySQL ab. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn