Foreign Key MySQL Tutorial

September 22

Creazione di una chiave esterna in MySQL è una parte di integrità referenziale nel database. Una chiave esterna si collega alle tabelle. Una chiave esterna viene utilizzato in combinazione con una chiave primaria, che è il record principale per il set di dati. Per esempio, una chiave primaria potrebbe essere usato sul tavolo di un cliente. L'ID cliente è un campo univoco che identifica chiaramente il cliente. Una chiave esterna è posto sulla tavola ordini, che collega il cliente al suo ordine.

Chiave primaria

Prima di creare una chiave esterna, una tabella che contiene un campo chiave primaria deve essere creato per l'integrità referenziale. In questo esempio, la creazione della tabella per i clienti e gli ordini può essere realizzato utilizzando la riga di comando di MySQL. La sintassi per creare una tabella è il seguente:

CREATE TABLE customer
(

CustId INT NOT NULL,
first_name VARCHAR(30),
PRIMARY KEY (CustId)

) Type = InnoDB;

In questo esempio, viene creata una tabella utilizzando l'istruzione parola chiave "create table". Se una chiave primaria non è definita, il programmatore può lasciare fuori la dichiarazione chiave primaria fino a che non sa su quale campo per inserire la chiave. Tuttavia, è importante per le tabelle per contenere una chiave primaria, perché questi elementi accelerare le prestazioni. In questo esempio, una chiave primaria viene creata sul campo "CustID". Il CustID viene utilizzato per identificare distintamente il cliente. Inoltre, quando si assegna una chiave primaria a una tabella, deve essere unico.

chiave esterna

Ora che si crea la chiave primaria, una chiave esterna viene creata sulla tabella Ordini. Anche in questo caso, se lo sviluppatore del database è sicuri della chiave esterna per utilizzare al momento della creazione della tabella, può essere aggiunto in seguito. Il codice seguente crea una tabella Ordini con una chiave esterna che punta alla tabella di clienti:

CREATE TABLE ordine
(

Orderid INT NOT NULL,
cost INT,
CustId INT NOT NULL,
PRIMARY KEY(OrderId),
INDEX (CustId),
FOREIGN KEY (CustId) REFERENCES customer (CustId)

) Type = InnoDB;

Si noti che una chiave primaria è stato creato per questa tabella e usando l'OrderId, che è anche un valore univoco. L'affermazione che definisce la chiave esterna è l'ultima nella sintassi tavolo. Definisce la chiave esterna e dice al database in cui si trova la sua chiave primaria. In questo esempio, il campo IDCLIENTE nella tabella Ordini fa riferimento al CustID nella tabella clienti.