gpt4 book ai didi

php - Laravel 7 迁移 :Syntax error or access violation: 1068 Multiple primary key defined

转载 作者:行者123 更新时间:2023-12-05 05:03:35 29 4
gpt4 key购买 nike

当我尝试执行 php artisan migrate 时,它​​给了我这个错误 照亮\数据库\查询异常

SQLSTATE[42000]:语法错误或访问冲突:1068 定义了多个主键(SQL:alter table users 添加主键users_user_id_primary(user_id))

虽然我是 laravel 的新手

这是我的迁移:

用户迁移

    public function up()
{
Schema::create('users', function (Blueprint $table) {
$table->id('user_id')->primary();
$table->string('username')->unique();
$table->string('email')->unique();
$table->string('password');
});
}

迁移后

    public function up()
{
Schema::create('posts', function (Blueprint $table) {
$table->id('post_id');
$table->timestamps();
$table->string('content');
$table->foreignId('user_id')->constrained();
$table->primary(['post_id', 'user_id']);


});
}

类别迁移

    public function up()
{
Schema::create('categories', function (Blueprint $table) {
$table->id('id_cat')->primary();
$table->string('nom');

});
}

马克斯迁移

    public function up()
{
Schema::create('marques', function (Blueprint $table) {
$table->id('marque_id');
$table->foreignId('cat_id')->constrained();
$table->string('designation');
$table->primary(['marque_id','cat_id']);
});
}

UserMarques 迁移

    public function up()
{
Schema::create('user_marques', function (Blueprint $table) {
$table->foreignId('cat_id')->constrained();
$table->foreignId('marque_id')->constrained();
$table->timestamps();
$table->primary(['marque_id','user_id']);
});
}

最佳答案

使用 $table->increments('user_id'); 代替 $table->id('user_id')->primary();

和其他人。

顺便说一句,我更喜欢 id 而不是模型名称,所以在这种情况下我更喜欢这个:$table->increments('id');

Laravel 7.x 更新

Laravel 7.x 迁移自带id方法

public function id($column = 'id')
{
return $this->bigIncrements($column);
}

所以在这种情况下:你可以像这样使用 id

$table->id();

PS:自增键自带主键

关于php - Laravel 7 迁移 :Syntax error or access violation: 1068 Multiple primary key defined,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61576078/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com