CREATE TABLE `tbl_user` ( `id` int(11) NOT NULL AUTO_INCREMENT, `name` varchar(20) DEFAULT NULL, PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; CREATE TABLE `tbl_order` ( `id` int(11) NOT NULL AUTO_INCREMENT, `user_id` int(11) DEFAULT NULL, `product_name` varchar(50) DEFAULT NULL, PRIMARY KEY (`id`), KEY `user_id` (`user_id`), CONSTRAINT `fk_user_id` FOREIGN KEY (`user_id`) REFERENCES `tbl_user` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8;
以上建表语句是创建订单表和用户表的示例代码。在订单表中定义了一个外键约束,指定了“user_id”列是来自于用户表中的“id”列,这意味着订单表的每一行必须和用户表的某一行关联。当执行“INSERT”和“UPDATE”操作时,如果没有符合外键约束的数据,MySQL将拒绝该操作。
在实际的开发中,使用外键约束可以有效地避免数据冗余、提高查询效率,提高数据库的完整性、可维护性和数据一致性。