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 la creazione di una tabella è qui sotto:
CREATE TABLE customer ( CustId INT NOT NULL , first_name VARCHAR ( 30 ) , PRIMARY KEY ( CustId ) ) TYPE = InnoDB ;
In questo esempio, viene creata una tabella utilizzando il " Create table" parola chiave . Se una chiave primaria non è definita , il programmatore può lasciare fuori l'affermazione chiave primaria fino a che non sa su quale campo 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 per una tabella , deve essere univoco.
Esteri chiave
Ora che la chiave primaria viene creata , una chiave esterna viene creata la tabella degli ordini . Anche in questo caso , se lo sviluppatore del database è sicuri della chiave esterna da 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 clienti :
CREATE TABLE ordine ( ID ordine INT NOT NULL , INT costo , CustId INT NOT NULL , PRIMARY KEY ( OrderId ) , INDEX ( CustId ) , FOREIGN kEY ( CustId ) cliente RIFERIMENTI ( CustId ) ) TYPE = InnoDB ;
noti che una chiave primaria è stato creato per questa tabella e utilizzando il OrderId , che è anche un valore unico . La dichiarazione che definisce la chiave esterna è l'ultimo nella sintassi tabella . Definisce la chiave esterna e racconta il database in cui si trova la sua chiave primaria . In questo esempio, il campo CustId nella tabella Ordini riferimenti alla IDCLIENTE nella tabella clienti .
software © www.354353.com