Php Laravel迁移:非主关键点时的自动增量关键点

Php Laravel迁移:非主关键点时的自动增量关键点,php,mysql,laravel,laravel-4,database-migration,Php,Mysql,Laravel,Laravel 4,Database Migration,我正试图用Laravel迁移创建一个表,但遇到了一些问题。 我只需要创建一个表,其中包含一个主对('id'和'revision'),即一个自动递增的'id'。 我可以在MySQL中实现,但我无法通过Laravel迁移实现,因为increments()还将字段设置为primary。 到目前为止,我有: Schema::create('bibliographies', function(Blueprint $table) { $table->increments('id

我正试图用Laravel迁移创建一个表,但遇到了一些问题。 我只需要创建一个表,其中包含一个主对('id'和'revision'),即一个自动递增的'id'。 我可以在MySQL中实现,但我无法通过Laravel迁移实现,因为increments()还将字段设置为primary。 到目前为止,我有:

Schema::create('bibliographies', function(Blueprint $table)
    {
        $table->increments('id');
        $table->integer('revision');
        ...
        $table->timestamps();
        $table->softDeletes();
        $table->primary(array('id', 'revision'));
    });
注意:更改increments()方法不是选项,因为它是Laravel core

提前感谢您的帮助。

在重新添加之前:

$table->dropPrimary( 'id' );
$table->primary( array( 'id', 'revision' ) );

我已经试过了,但没有成功。它向我返回以下错误:[illumb\Database\QueryException]SQLSTATE[42000]:语法错误或访问冲突:1075不正确的表定义;只能有一个自动列,并且必须将其定义为键(SQL:alter table
书目
drop primary key)。此外,创建该表时仅使用“id”作为主键,我需要手动将其删除。@CarlosMaia假设您实际上不需要一对列作为主键,你可以毫无问题地制作它们——这样行吗?@Joe,我也面临着同样的问题。但我不想让我的其他专栏成为唯一的,也不是主要的。怎么办?@MASh我不知道你在说什么asking@MAShStackExchange 101:当你解决问题时,告诉其他人,这样他们也可以学习。这不是一条单行道——你也应该回馈社区。你是如何解决你的问题的?
 $table->unsignedInteger('id')->change();//will remove the auto increment
 $table->dropPrimary('id');//will remove primary constrain
 $table->unsignedInteger('revision') //add revision column
 $table->primary( array( 'id', 'revision' ) );//make them both primary
 $table->increments('id')->change()//add the auto increment constrain back