Khóa ngoại (FOREIGN KEY) thực thi tính toàn vẹn tham chiếu (referential integrity), tự động duy trì sự nhất quán dữ liệu giữa bảng cha và bảng con.
Ví dụ: customer (cha) và orders (con)
mysql> SELECT * FROM Customer; +----+--------+ | id | name | +----+--------+ | 1 | Gaurav | | 2 | Raman | | 3 | Harshit| | 4 | Aarav | +----+--------+ mysql> SELECT * FROM orders; +----------+----------+------+ | order_id | product | id | +----------+----------+------+ | 100 | Notebook | 1 | | 110 | Pen | 1 | | 120 | Book | 2 | | 130 | Charts | 2 | +----------+----------+------+
Thử chèn đơn hàng cho khách hàng không tồn tại (id=10):
mysql> INSERT INTO orders VALUES(400, 'Notebook', 10); ERROR 1452 (23000): Cannot add or update a child row: a foreign key constraint fails (`query`.`orders`, CONSTRAINT `orders_ibfk_1` FOREIGN KEY (`id`) REFERENCES `customer` (`id`))
MySQL chặn việc tạo hàng con với khóa ngoại không tồn tại ở bảng cha, đảm bảo toàn vẹn dữ liệu.