Laravel 5 迁移,整数时的默认值无效
Laravel 5 Migration, Invalid default value when integer
我试图创建一个 table 并将 0 作为其默认整数值
代码如下:
Schema::create('gsd_proyecto', function($table) {
$table->increments('id');
$table->string('nombre', 80)->unique();
$table->string('descripcion', 250)->nullable();
$table->date('fechaInicio')->nullable();
$table->date('fechaFin')->nullable();
$table->integer('estado', 1)->default(0);
$table->string('ultimoModifico', 35)->nullable();
$table->timestamps();
});
但是当我 运行 迁移时,我遇到了下一个错误:
Next exception 'Illuminate\Database\QueryException' with message 'SQLSTATE[42000]: Syntax error or access violation: 1067 Invalid default value for 'estado'
我正在检查 laravel 创建的 SQL 是什么,我找到了下一个
create table `gsd_proyecto` (
`id` int unsigned not null auto_increment primary key,
`nombre` varchar(80) not null,
`descripcion` varchar(250) null,
`fechaInicio` date null,
`fechaFin` date null,
`estado` int not null default '0' auto_increment primary key,
`ultimoModifico` varchar(35) null,
`created_at` timestamp default 0 not null,
`updated_at` timestamp default 0 not null
)
如您所见,laravel 正在尝试使用字符值 ('0' 设置字段 estado ) 也作为自增主键
任何帮助将不胜感激
删除integer
方法中的第二个参数。它将列设置为自动递增。查看 Laravel API 了解更多详情。
http://laravel.com/api/5.0/Illuminate/Database/Schema/Blueprint.html#method_integer
$table->integer('estado')->default(0);
我试图创建一个 table 并将 0 作为其默认整数值 代码如下:
Schema::create('gsd_proyecto', function($table) {
$table->increments('id');
$table->string('nombre', 80)->unique();
$table->string('descripcion', 250)->nullable();
$table->date('fechaInicio')->nullable();
$table->date('fechaFin')->nullable();
$table->integer('estado', 1)->default(0);
$table->string('ultimoModifico', 35)->nullable();
$table->timestamps();
});
但是当我 运行 迁移时,我遇到了下一个错误:
Next exception 'Illuminate\Database\QueryException' with message 'SQLSTATE[42000]: Syntax error or access violation: 1067 Invalid default value for 'estado'
我正在检查 laravel 创建的 SQL 是什么,我找到了下一个
create table `gsd_proyecto` (
`id` int unsigned not null auto_increment primary key,
`nombre` varchar(80) not null,
`descripcion` varchar(250) null,
`fechaInicio` date null,
`fechaFin` date null,
`estado` int not null default '0' auto_increment primary key,
`ultimoModifico` varchar(35) null,
`created_at` timestamp default 0 not null,
`updated_at` timestamp default 0 not null
)
如您所见,laravel 正在尝试使用字符值 ('0' 设置字段 estado ) 也作为自增主键
任何帮助将不胜感激
删除integer
方法中的第二个参数。它将列设置为自动递增。查看 Laravel API 了解更多详情。
http://laravel.com/api/5.0/Illuminate/Database/Schema/Blueprint.html#method_integer
$table->integer('estado')->default(0);