我试图创建一个以0作为默认整数值的表
代码如下: @H_301_2@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(); });
代码如下: @H_301_2@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(); });
但是当我运行迁移时,我得到了下一个错误:
@H_301_2@Next exception 'Illuminate\Database\QueryException' with message 'sqlSTATE[42000]: Syntax error or access violation: 1067 Invalid default value for 'estado'我正在检查laravel创建的sql是什么,然后我找到了
@H_301_2@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正在尝试使用char值(‘0’)设置字段estado,并将其作为自动增量主键
任何帮助将非常感激