Mysql
 sql >> Database >  >> RDS >> Mysql

creare una relazione di chiave primaria ed esterna

La tabella dei clienti potrebbe essere simile alla seguente. Deve avere un tipo di dati e un indice comuni per la colonna nella tabella padre (clienti). L'FK avrà esito negativo sulla creazione della tabella figlio se i tipi di colonna/l'indice sono errati.

E per un ALTER TABLE add constraint comando con dati preesistenti nel figlio, fallirà se i dati non sono validi.

A proposito, INT(4) è solo una larghezza di visualizzazione. È ancora un int.

create table customers(
    customer_id int auto_increment primary key,
    customerName varchar(100) not null
    -- other columns
);

CREATE TABLE accounts(
    account_id INT AUTO_INCREMENT PRIMARY KEY,
    customer_id INT( 4 ) NOT NULL ,
    account_type ENUM( 'savings', 'credit' ) NOT NULL,
    balance FLOAT( 9 ) NOT NULL,
    FOREIGN KEY (customer_id) REFERENCES customers(customer_id) 
) ENGINE=INNODB;