Spiegazione

InnoDB supporta i vincoli di integrità (CONSTRAINT) per le chiavi esterne. La sintassi per definirli è la seguente:

[CONSTRAINT [simbolo]] FOREIGN KEY
    [nome_indice] (nome_colonna, ...)
    REFERENCES nome_tabella (nome_colonna,...)
    [ON DELETE opzione]
    [ON UPDATE opzione]

opzioni:
    RESTRICT | CASCADE | SET NULL | NO ACTION

Esempi:

CREATE TABLE prodotto (categoria INT NOT NULL, id INT NOT NULL,
                      prezzo DECIMAL,
                      PRIMARY KEY(categoria, id)) ENGINE=INNODB;
CREATE TABLE cliente (id INT NOT NULL,
                     PRIMARY KEY (id)) ENGINE=INNODB;
CREATE TABLE ordine_prodotto (no INT NOT NULL AUTO_INCREMENT,
                             categoria_prodotto INT NOT NULL,
                             id_prodotto INT NOT NULL,
                             id_cliente INT NOT NULL,
                             PRIMARY KEY(no),
                             INDEX (categoria_prodotto, id_prodotto),
                             FOREIGN KEY (categoria_prodotto, id_prodotto)
                               REFERENCES prodotto(categoria, id)
                               ON UPDATE CASCADE ON DELETE RESTRICT,
                             INDEX (id_cliente),
                             FOREIGN KEY (id_cliente)
                               REFERENCES cliente(id)) ENGINE=INNODB;

Commenti

Sto caricando i commenti......