Criei 2 migrações laravel, a primeira roda perfeitamente, a segunda me dá um erro:
SQLSTATE[23000]: Violação de restrição de integridade: 1452 Não é possível adicionar ou atualizar uma linha filho: uma restrição de chave estrangeira falha
Não tenho certeza do que há de errado na minha chave estrangeira, alguém pode me ajudar?
Aqui está meu primeiro esquema:
Schema::create('cryptocurrencies', function (Blueprint $table) {
$table->id('id');
$table->string('name');
$table->string('symbol')->unique();
$table->string('slug');
$table->longtext('description');
});
Aqui está meu segundo esquema:
Schema::create('cryptocurrencies_quotes', function (Blueprint $table) {
$table->id('id');
$table->string('name');
$table->string('symbol');
$table->string('slug');
$table->integer('cryptocurrency_id');
$table->bigInteger('circulating_supply');
$table->bigInteger('total_supply');
$table->double('price');
$table->double('volume_24h');
$table->timestamps();
});
Schema::table('cryptocurrencies_quotes', function (Blueprint $table) {
$table->foreign('cryptocurrency_id')->references('id')->on('cryptocurrencies')->onUpdate('cascade')->onDelete('cascade');
});
Isso significa que o valor que passamos para a tabela2 é estrangeiro e não existe na tabela1 como pai Na sua segunda alteração de tabela
para