在架构构建器中为枚举类型字段添加默认值

时间:2015-02-16 17:28:52

标签: mysql laravel laravel-4 enums database-schema

我使用以下方法在架构构建器中创建类型为ENUM的数据库列:

$table->enum('status', array('new', 'active', 'disabled'));

我想将其默认值设为active 我试着这样做:

$table->enum('status', array('new', 'active', 'disabled'))->default('active');

但是你可以猜到它并没有设定它的默认值。我非常重视使用MySQL数据库。

3 个答案:

答案 0 :(得分:13)

来自the MySQL manual

  

如果声明ENUM列允许NULL,则NULL值是列的合法值,默认值为NULL。如果ENUM列声明为NOT NULL,则其默认值是允许值列表中的第一个元素。

我假设这意味着您应该将'active'设置为第一个值,移除default()来电,并可能手动设置NULL许可。

答案 1 :(得分:6)

使用它:

$table->enum('status',['new', 'active', 'disabled'])->default('active');

答案 2 :(得分:2)

我遇到了类似的问题,这对我有用:

$table->enum('status', array('active', 'new', 'disabled'));

将默认值作为数组中的第一个元素。 active现在是默认值。