编程语言
首页 > 编程语言> > php-如何在Laravel迁移中使用auto_increment include创建多个主键?

php-如何在Laravel迁移中使用auto_increment include创建多个主键?

作者:互联网

我刚接触Laravel.进行迁移时遇到问题.我的架构就是这样

public function up()
{
    Schema::create('journal', function($table){
        $table->increments('id');
        $table->timestamp('journal_date');
        $table->string('no_ref',25);
        $table->string('acc_id', 10);
        $table->string('description', 100);
        $table->integer('debet')->default(0);
        $table->integer('kredit')->default(0);
        $table->primary(array('journal_date', 'no_ref', 'acc_id'));
    });
}

然后在运行PHP artisan migration时出现错误

[Illuminate\Database\QueryException]                                                                                                                                                            
SQLSTATE[42000]: Syntax error or access violation: 1068 Multiple primary key 
defined (SQL: alter table `journal` add primary key 
journal_journal_date_no_ref_acc_id_primary(`journal_date`,   
`no_ref`, `acc_id`))    

我曾建议删除主数据库,但这也会使自动增量下降.我只是不知道该怎么解决.

解决方法:

最后,我找到了答案.我刚刚像这样使用DB :: statement

                DB::statement('ALTER TABLE  `journal` DROP PRIMARY KEY , ADD PRIMARY KEY (  `id` ,  `journal_date` ,  `no_ref` ,  `acc_id` ) ;');

我的问题解决了.

标签:laravel-4,php
来源: https://codeday.me/bug/20191121/2053627.html