A tabela de clientes pode ser semelhante à abaixo. Ele precisa ter um tipo de dados e um índice comuns para a coluna na tabela pai (clientes). O FK falhará na criação da tabela filho se os tipos/índice de coluna estiverem errados.
E para uma restrição de adição
ALTER TABLE add constraint
comando com dados pré-existentes no filho, ele falhará se os dados não forem válidos. A propósito, o INT(4) é apenas uma largura de exibição. Ainda é um 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;