问题描述
我尝试了很多方法,但是没有任何效果。我需要在表daily_deals_products中添加一个组合键。是在laravel和MysqL中开发的。
<?PHP
use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;
class CreateDailyDealsProductsTable extends Migration
{
/**
* Run the migrations.
*
* @return void
*/
public function up()
{
Schema::create('daily__deals__products',function (Blueprint $table) {
$table->bigIncrements('id');
$table->integer('product_id');
$table->timestamps();
});
}
/**
* Reverse the migrations.
*
* @return void
*/
public function down()
{
Schema::dropIfExists('daily__deals__products');
}
}
解决方法
尝试:
$table->primary(['id','product_id']);
public function up()
{
Schema::create('daily__deals__products',function (Blueprint $table) {
$table->primary(['id','product_id']);
$table->unsignedInteger('id');
$table->foreignId('product_id')->nullable()->constrained()->onDelete('cascade');
}
,
Schema::create("daily__deals__products",function($table) {
$table->increments('id');
$table->integer('product_id');
$table->string('name');
});
DB::unprepared('ALTER TABLE `daily__deals__products` DROP PRIMARY KEY,ADD PRIMARY KEY ( `id`,`product_id` )');