场景
如果现在有两张表,一张表是文章表articles
,一张表是分类表categories
,其中在文章表中有一个分类字段category_id
,现在想在删除分类表中的某一分类时,该分类下的所有文章也一起被删除,那么这时候就可以用到外键约束
具体用法如下:
给文章表添加外键约束
$table->unsignedInteger('category_id')->comment('文章所属分类|select');
$table->foreign('category_id')->references('id')->on('categories')->onDelete('cascade');
其中需要注意的是分类表categories
中的主键字段id
与文章表articles
中的外键字段category_id
的数据类型或者是数据长度要保持一致,因为作为主键的id
值是从1开始自增的,所以在被其绑定的外键字段的数据类型就不能使用integer
,而要改用unsignedInteger