Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/277.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php SQLSTATE[23000]:外键_Php_Laravel_Laravel 5.8 - Fatal编程技术网

Php SQLSTATE[23000]:外键

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

您好,我仍然收到此错误,但一切正常,迁移工作正常

SQLSTATE[23000]:完整性约束冲突:1452无法添加或 更新子行:外键约束失败 (
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语句吗?