19

我有两个字段需要增加字符限制。我通读了文档,令我惊讶的是,我没有找到它的选择。有可能吗?如果没有,我应该如何解决这个问题?

我可以删除该列并使用正确的属性重新创建它,但我不想丢失数据库中的任何数据。

4

4 回答 4

26

对于 Laravel 4

DB::update('ALTER TABLE `my_table` MODIFY `my_column` VARCHAR(<new length>)');
于 2013-07-03T19:30:43.277 回答
24

使用原始查询

/**
 * Make changes to the database.
 *
 * @return void
 */
public function up()
{
  DB::query('ALTER TABLE mytable MODIFY mycolumn VARCHAR(new-length)');
}

/**
 * Revert the changes to the database.
 *
 * @return void
 */
public function down()
{
  DB::query('ALTER TABL mytable MODIFY mycolumn VARCHAR(old-length)');
}

替换mytable、和。mycolumn_new-lengthold-length

对于 Laravel 5+ 替换DB::queryDB::statement.

于 2012-12-10T17:30:32.593 回答
17

对于 Laravel 5:

Schema::table('users', function($table)
{
    $table->string('name', 50)->change();
});

检查文档以获取更多信息。

于 2015-06-08T10:49:27.873 回答
1

如果名称是系统的关键字,则使用 `` 作为列名。否则,您将收到“语法错误或访问冲突”。

DB::query("alter table MYTABLE modify `MYCOLUMN` varchar(new-length)");
于 2013-04-01T20:46:24.137 回答