Laravel 无法使用外键添加新列
我是laravel新手,在现有表中添加新列时,我遇到了上述错误: SQLSTATE[23000]:完整性约束冲突:1452无法添加或 更新子行:外键约束失败 (Laravel 无法使用外键添加新列,laravel,Laravel,我是laravel新手,在现有表中添加新列时,我遇到了上述错误: SQLSTATE[23000]:完整性约束冲突:1452无法添加或 更新子行:外键约束失败 (学校管理#sql-314_2c,约束 students\u parentsid\u foreign外键(parentsid)引用 DELETE CASCADE上的家长姓名(id)(SQL:alter tablestudents 添加约束students\u parentsid\u foreign外键(parentsid) 在删除级联上引用
学校管理
#sql-314_2c
,约束
students\u parentsid\u foreign
外键(parentsid
)引用
DELETE CASCADE上的家长姓名(id
)(SQL:alter tablestudents
添加约束students\u parentsid\u foreign
外键(parentsid
)
在删除级联上引用父项名称(id
)
在
只需使用外键为现有表插入一列,这是因为您试图使用外键约束创建一个新列,但没有设置默认值。因此,您可以将其设置为可空
或设置默认值(必须是父项名称
表中存在的ID)
或者,您可以添加不带约束的列,然后更新数据,以便在添加时满足所有记录的约束。
public function up(){
Schema::table('students', function (Blueprint $table)
{
$table->unsignedBigInteger('parentsid')->after('id');
$table->foreign('parentsid')->references('id')->on('parent_names')->onDelete('cascade');
});
}
public function down()
{
Schema::table('students', function (Blueprint $table) {
//
});
}
$table->unsignedBigInteger('parentsid')->default(1);