Mysql
 sql >> Base de données >  >> RDS >> Mysql

créer une relation de clé primaire et étrangère

La table des clients pourrait ressembler à celle ci-dessous. Il doit avoir un type de données et un index communs pour la colonne dans la table parent (clients). Le FK échouera lors de la création de la table enfant si les types de colonne/index sont incorrects.

Et pour une ALTER TABLE add constraint commande avec des données préexistantes dans l'enfant, elle échouera si les données ne sont pas valides.

Soit dit en passant, l'INT(4) n'est qu'une largeur d'affichage. C'est toujours 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;