欢迎各位兄弟 发布技术文章

这里的技术是共享的

You are here

修改列 alter modify 列的类型 数据类型 修改column rename renameColumn 列类型列名的类型默认值几种方法 重命名列名 make:migration migration migrate 有大用 有大大用

1) 应该可以吧

function up(){
DB::statement('ALTER TABLE `throttle` MODIFY `user_id` INTEGER UNSIGNED NULL;');
DB::statement('UPDATE `throttle` SET `user_id` = NULL WHERE `user_id` = 0;');
}
function down(){
DB::statement('UPDATE `throttle` SET `user_id` = 0 WHERE `user_id` IS NULL;');
DB::statement('ALTER TABLE `throttle` MODIFY `user_id` INTEGER UNSIGNED NOT NULL;');
}


2)
$table->dropColumn('userinfo_accept_number');  $table->dropColumn('userinfo_emaining_number');  $table->dropColumn('userinfo_year');$table->dropColumn('userinfo_end_day');



$table->integer('userinfo_accept_number')->unsigned(); 
$table->integer('userinfo_emaining_number')->unsigned(); 
$table->integer('userinfo_year')->unsigned(); 
$table->timestamp('userinfo_end_day');


3) 先composer require doctrine/dbal
然后

3) composer require doctrine/dbal  然后

$table->integer('userinfo_accept_number')->unsigned()->change(); 
$table->integer('userinfo_emaining_number')->unsigned()->change(); 
$table->integer('userinfo_year')->unsigned()->change(); 
$table->timestamp('userinfo_end_day')->change();


有可能会报错

[Symfony\Component\Debug\Exception\FatalThrowableError]

Class 'Doctrine\DBAL\Driver\PDOMySql\Driver' not found


,报错的原因可能是doctrine/dbal版本的问题我执行 

   # composer remove  doctrine/dbal        #这个好像可以不用执行

 #  composer require doctrine/dbal:2.12.1     #执行这个就可以了


重命名列

要重命名一个列,可以使用表结构构建器上的 renameColumn 方法,在重命名一个列之前,确保 doctrine/dbal 依赖已经添加到 composer.json 文件并且已经运行了 composer update 命令:

Schema::table('users', function (Blueprint $table) {
    $table->renameColumn('from', 'to');
});

注:暂不支持 enum 类型的列的修改和重命名。


普通分类: