sql >> Base de Datos >  >> RDS >> Mysql

crear una relación de clave primaria y externa

La tabla de clientes podría verse como la siguiente. Debe tener un tipo de datos e índice comunes para la columna en la tabla principal (clientes). El FK fallará en la creación de la tabla secundaria si los tipos de columna/índice son incorrectos.

Y para una ALTER TABLE add constraint comando con datos preexistentes en child, fallará si los datos no son válidos.

Por cierto, INT(4) es solo un ancho de pantalla. Sigue siendo 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;