当我如下创建 Laravel5 迁移时,它添加“linkdesc”列作为主键。当我阅读 laravel5 迁移的文档时,它没有提到 $table->text('description');
这给出了数据库中的主键。
有什么办法可以防止 laravel5 中自动添加主键吗?
还有其他迁移功能会提供这种不需要的主键吗?
我的迁移如下
Schema::create('articles', function (Blueprint $table) {
$table->primary(['pemail', 'linkid']);
$table->bigInteger('linkid');
$table->string('pemail');
$table->string('linkname');
$table->string('linkurl');
$table->integer('linorder');
$table->text('linkdesc')->nullable();
});
最佳答案
我认为您误读了在 PhpMyAdmin 中获得的信息。您的 primary
单词处于非事件状态,无法在 linkdesc
列的行中单击它,并且您认为 Laravel 为此列创建了主键。
然而事实却截然不同 - 它处于非事件状态并不是因为 Laravel 自动为此字段创建主键,而是因为它是一个文本字段,而文本字段不能是主键。
当您在 PhpMyAdmin 中单击 Indexes
时,您可以验证它 - 它应该位于表格下方 - 您将看到 linkdesc
列上没有主键。
关于php - laravel 5 迁移向我的数据库表添加了一些主键。如何预防呢?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31616745/