Php SQLSTATE[23000]:外键
您好,我仍然收到此错误,但一切正常,迁移工作正常 SQLSTATE[23000]:完整性约束冲突:1452无法添加或 更新子行:外键约束失败 (Php SQLSTATE[23000]:外键,php,laravel,laravel-5.8,Php,Laravel,Laravel 5.8,您好,我仍然收到此错误,但一切正常,迁移工作正常 SQLSTATE[23000]:完整性约束冲突:1452无法添加或 更新子行:外键约束失败 (fakturytablefakturas,约束 fakturas\u id\u sprzedawcy\u foreign外键(id\u sprzedawcy) 删除级联上的引用sprzedawcas(id) fakturas(typ\u faktury,data\u wystawineia,mejsce\u wystawineia, data\u spr
fakturytable
fakturas
,约束
fakturas\u id\u sprzedawcy\u foreign
外键(id\u sprzedawcy
)
删除级联上的引用sprzedawcas
(id
)
fakturas
(typ\u faktury
,data\u wystawineia
,mejsce\u wystawineia
,
data\u sprzedazy
,towar\u usluga
,jm
,ilosc
,cena\u netto
,
watosc_netto
,stawka_vat
,kwota_vat
,wartosc_brutto
,状态
,
sposob\u platnosci
,numer\u konta
,term\u platnosci
)值
(fsturaVAT,2020年10月14日,明斯克马佐维耶茨基,2020年10月26日,波尔蒂,1月10日,
2345642112412412342071107,
1234567890121345678900983212020.10.28)
fakturas迁移:
use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;
class CreateFakturasTable extends Migration
{
/**
* Run the migrations.
*
* @return void
*/
public function up()
{
Schema::create('fakturas', function(Blueprint $table){
$table->increments('id');
$table->unsignedinteger('id_sprzedawcy');
$table->unsignedinteger('id_nabywcy');
$table->string('typ_faktury');
$table->date('data_wystawienia');
$table->string('mejsce_wystawienia');
$table->date('data_sprzedazy');
$table->string('towar_usluga');
$table->string('jm');
$table->bigInteger('ilosc');
$table->bigInteger('cena_netto');
$table->bigInteger('watosc_netto');
$table->bigInteger('stawka_vat');
$table->bigInteger('kwota_vat');
$table->bigInteger('wartosc_brutto');
$table->string('status');
$table->string('sposob_platnosci');
$table->string('numer_konta');
$table->date('termin_platnosci');
});
Schema::table('fakturas',function($table){
$table->foreign('id_sprzedawcy')
->references('id')->on('sprzedawcas')
->onDelete('cascade');
$table->foreign('id_nabywcy')
->references('id')->on('nabywcas')
->onDelete('cascade');
});
}
public function down()
{
Schema::dropIfExists('fakturas');
Schema::enableForeignKeyConstraints();
}
}
您的插入不正确
插入fakturas(典型faktury、数据wystawienia、mejsce wystawienia、数据sprzedazy、towar usluga、jm、ilosc、cena_netto、watosc_netto、stawka_vat、kwota_vat、wartosc_brutto、状态、sposob_platnosci、numer_konta、termin platnosci)值(fsturaVAT,2020.10.14,明斯克马佐维耶茨基,2020.10.26,波尔蒂,1月10日,23456,421124,1234,207,1107,尼亚普拉科纳,qwrq,1234567890121345678900983212020.10.28))
不引用您在迁移过程中提出要求的id\u sprzedawcy
。(外键)
您需要在insert中提供有效的
id\u sprzedawcy
,或者删除外键约束。插入时未提供id\u sprzedawcy的值(该值应该是sprzedawcas表中存在的id)。
在create语句中提供它或在迁移中使其为空:
$table->unsignedinteger('id_sprzedawcy')->nullable();
这同样适用于您拥有的任何其他外键。Hi您必须将相同的数据类型放在父表id处,如“$table->unsignedinteger('id_sprzedawcy');”我想这里是“$table->unsignedbiginger('id_sprzedawcy')`我在表NABYWCAS中使用增量id,该表中的
id
的数据类型是什么sprzedawcas
?在idI中使用增量我是说该表sprzedawcas
中的id
属性的数据类型是什么,或者在您的问题中也发布您的此表。是的,但如果您需要,需要这一个fogein键,您需要在插入中为其包含一个值。如果不提供外键值,则无法插入具有外键的行。无论在何处插入到fakturas
中,都需要使用表sprzedawcas
中的有效id添加到id\u sprzedawcy
。我无法进一步解释。是的,但我已经得到了自动递增。id_sprzedawcy是一个独立于sprzedawcas中id列的列,它只是引用它,但您必须为它提供一个值。此值来自sprzedawcas中的id列。fakturas表中的id_sprzedawcy列不是sprzedawcas表中的id列,它只是引用它,当您在fakturas的id_sprzedawcy列中插入值1时,它只是意味着:嘿,您正在查找sprzedawcy,转到sprzedawcas表并查找具有id的行:1您可以发布create语句吗?