Tabela klientów mogłaby wyglądać jak poniżej. Musi mieć wspólny typ danych i indeks dla kolumny w tabeli nadrzędnej (klienci). FK nie powiedzie się podczas tworzenia tabeli podrzędnej, jeśli typy kolumn / indeksy są nieprawidłowe.
A dla ALTER TABLE add constraint
polecenie z wcześniej istniejącymi danymi w potomku, nie powiedzie się, jeśli dane są nieprawidłowe.
Nawiasem mówiąc, INT(4) to tylko szerokość wyświetlacza. To wciąż jest 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;