php - laravel 5 迁移向我的数据库表添加了一些主键。如何预防呢?

标签 php mysql sql laravel-5 laravel-migrations

当我如下创建 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/

相关文章:

php - 按 id=1 排序的学说

php mysql fetch语句获取问题

PHP : Array to MySQL Database

python - 更新主键 Django MySQL

mysql - 在加载到 mysql 之前检查传入 csv 文件中的重复数据

mysql - 仅当我有不同的 ID 时如何求和?

sql - 从 SQL Server 中的日期检索年份和周数

sql - 使用 LINQ-to-Entities 的 OrderBy 和 Distinct

MySQL - 如何选择具有唯一名称的行?

php - 在 Doctrine DBAL 中使用executeQuery 绑定(bind)变量类型时出现问题