Laravel迁移错误

时间:2016-01-13 11:07:00

标签: php mysql laravel migration

创建了新的Laravel 5.2.8项目。

当我想要进行预定义的迁移时,我收到错误:

[Illuminate\Database\QueryException]
SQLSTATE[HY000]: General error: 1293 Incorrect table definition; there can be only one TIMESTAMP column with CURREN
T_TIMESTAMP in DEFAULT or ON UPDATE clause (SQL: create table `users` (`id` int unsigned not null auto_increment pr
imary key, `name` varchar(255) not null, `email` varchar(255) not null, `password` varchar(60) not null, `remember_
token` varchar(100) null, `created_at` timestamp default CURRENT_TIMESTAMP not null, `updated_at` timestamp default
CURRENT_TIMESTAMP not null) default character set utf8 collate utf8_unicode_ci)



[PDOException]
SQLSTATE[HY000]: General error: 1293 Incorrect table definition; there can be only one TIMESTAMP column with CURREN
T_TIMESTAMP in DEFAULT or ON UPDATE clause

迁移:

Schema::create('users', function (Blueprint $table) {
   $table->increments('id');
   $table->string('name');
   $table->string('email')->unique();
   $table->string('password', 60);
   $table->rememberToken();
   $table->timestamps();
});

如何解决这个问题?

1 个答案:

答案 0 :(得分:0)

错误正是在告诉你什么是错的。查看您的CREATE TABLE声明;您不能有两列timestamp,默认为CURRENT_TIMESTAMP

SQL:

create table `users` (`id` int unsigned not null auto_increment pr
imary key, 
`name` varchar(255) not null, 
`email` varchar(255) not null, 
`password` varchar(60) not null, 
`remember_
token` varchar(100) null, 
`created_at` timestamp default CURRENT_TIMESTAMP not null, <-- here
`updated_at` timestamp default CURRENT_TIMESTAMP not null) <-- here
default character set utf8 collate utf8_unicode_ci;