Tabulka zákazníků by mohla vypadat jako níže. Musí mít společný datový typ a index pro sloupec v nadřazené tabulce (zákazníci). FK selže při vytváření podřízené tabulky, pokud jsou typy sloupců / index nesprávné.
A pro ALTER TABLE add constraint
příkaz s již existujícími daty v potomku, selže, pokud data nejsou platná.
Mimochodem, INT(4) je jen šířka displeje. Je to stále 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;