Supongo que está preguntando porque ha leído la documentación y no tiene sentido para usted.
Una clave foránea (FK) es un campo en TableB que tiene el mismo valor que un campo, generalmente la clave principal (PK), en TableA. Así, en pseudocódigo:
Create TableA:
A_id is PK,
somefield,
anotherfield
Create TableB:
B_id is PK,
A_id is FK to TableA,
farmfield,
outstandingfield
Create constraint on TableB:
In TableB A_id references TableA(A_id),
Don't allow updates to TableA(A_id),
Delete records from TableB that have the same A_id as deleted records in TableA
A continuación, cuando se hace una consulta que implica ambas tablas, puede unirse en su FK:
SELECT a.somefield, b.farmfield FROM TableA a JOIN TableB b ON (a.A_id=B.A_id);
Y cuando se elimina de la Tabla A, que no tienen que eliminar de TableB. Sucederá automáticamente porque la restricción dice "Eliminar registros de TableB que tienen el mismo A_id que los registros eliminados en la Tabla A".
Y cuando inserte en TableB, tendrá que dar un A_id válido o, según cómo haya definido la columna, dejar A_id =NULL
.
También es importante recordar que MySQL descarta de forma silenciosa la sintaxis de la clave externa en línea en el momento de creación de la tabla, p. 'CREATE TABLE foo (... bar int (5) unsigned not null references baz (bar) ...) ENGINE = InnoDB;' ** NO ** creará una clave foránea. Siempre especifique las claves foráneas explícitamente después de las declaraciones de campo como 'CREATE ... (... FOREIGN KEY key_name (column_name) REFERENCES foreign_table (foreign_column) ON UPDATE ... ON DELETE ...)' sintaxis. Espero que esto ayude. – Dereleased