laravel - Laravel - 不正确的表定义;只能有一个自动列,并且必须将其定义为键”
问题描述
在我的 Laravel-8 应用程序中,我得到了以下代码:
public function up()
{
Schema::create('user_log_activities', function (Blueprint $table) {
$table->bigIncrements('id');
$table->bigInteger('user_id')->nullable()->unsigned();
$table->string('log_url', 300)->nullable();
$table->string('log_method', 20)->nullable();
$table->string('log_type', 50)->nullable();
$table->string('subject', 200)->nullable();
$table->string('subject_hint', 20)->nullable();
$table->integer('company_id', 11)->nullable();
$table->string('id_address', 64)->nullable();
$table->string('agent', 300)->nullable();
$table->timestamps();
});
}
问题在这里:
$table->bigInteger('user_id')->nullable()->unsigned();
user_id 不是自动增量,但我收到此错误:
PDOException::("SQLSTATE[42000]: 语法错误或访问冲突:1075 表定义不正确;只能有一个自动列,并且必须定义为键")
我已经尝试了几种方法,但没有工作
我该如何解决?
谢谢
解决方案
问题是您使用整数的长度。11 计为自动增量值
$table->integer('company_id', 11)->nullable();
从中删除长度
$table->integer('company_id')->nullable();
如果是外键,则使用与 user_id 相同的键
推荐阅读
- python - 如何从我的随机二进制字符串中删除换行符?
- azure - Azure mac 托管代理:从云端获取代理:请求队列位置信息不可用
- amazon-dynamodb - 查询未定义字段的项目的全局二级索引
- javascript - HTML & JavaScript - 静音按钮没有任何作用
- qt - 使用 MinGW 64 位 (Qt 5.13.1) 构建时出现 qmlplugindump 错误
- php - API-PLATFORM 用户更新密码或用户资料
- python - Sending a message using username instead of recipient_id (Python Twitter API)
- php - 通过添加字符来破坏 Json 变量
- python - Python pandas:如果“字符串”不包含在第 2 列中,则从第 1 列获取唯一 ID
- c# - Using WorkItemTrackingHttpClient through a proxy to get DevOps work items