我需要在我的laravel项目中添加一个新列,这没有问题,我使用了Schema::table()
进行了更新,一切正常。现在我需要找出这个表上有多少条记录,并用一些值进行更新。
我有表担保
:
Schema::create('warrant_grants', function(Blueprint $table) {
$table->increments('id');
$table->integer('warrant_plan_id');
$table->integer('shareholder_id');
});
因此,我使用新的迁移文件创建了新字段:
Schema::table('warrant_grants',function ($table) {
$table->string('name',100);
});
现在我需要用一些值更新表中的这个字段name
,例如,如果表中有100条记录,那么我需要在每一行中插入值“carry-X”,其中X是一个从1到100的数字。例如:
逮捕令-1,逮捕令-2,......逮捕证-100。
我花了几个小时寻找使用种子的方法,但我没有找到。所以基本上我有两个问题:
是的,您可以在迁移中执行更新/插入/任何操作。例如:
Schema::table('warrant_grants', function($table) {
$table->string('name', 100);
});
$i = 1;
foreach (WarrantGrants::all() as $warrant_grant) {
$warrant_grant->update([
'name' => 'Warrant-' . $i
]);
$i++;
}
其他答案是正确的。但是请注意,如果您有很多记录,那么使用ORM更新所有记录可能需要时间。使用原始SQL查询可以更快地完成这项工作。
Schema::table('warrant_grants',function ($table){
$table->string('name',100)->after('id')->nullable();
});
DB::raw("UPDATE warrant_grants SET name=name+id");
SQL查询并不精确,您必须为自己的数据库创建它,但您明白了。
基于此链接,我找到了答案:https://stackoverflow.com/a/23506744/4650792
Schema::table('warrant_grants',function ($table){
$table->string('name',100)->after('id')->nullable();
});
$results = DB::table('warrant_grants')->select('id','name')->get();
$i = 1;
foreach ($results as $result){
DB::table('warrant_grants')
->where('id',$result->id)
->update([
"name" => "Warrant-".$i
]);
$i++;
}
不管怎样,谢谢你的帮助,伙计们。
我已经创建了一个迁移文件,并在数据库中创建了表。现在,我想向现有迁移文件添加新列。我要做的是,打开迁移文件并在up()函数中添加列名,添加列名后,运行命令 如何向现有表中添加新列?
我不知道如何使用Laravel框架将新列添加到现有的数据库表中。 我试图使用…编辑迁移文件。。。 在终端,我执行和。 如何添加新列?
我想在laravel中现有的表中添加一些新列。 我已经在谷歌上搜索过了,在这些搜索之后,我已经使用命令创建了迁移。 将列添加到用户。php 创建之后,我运行这个命令。 但也犯了同样的错误: 基本表或视图已存在:1050个表“用户”已存在(SQL:create table(int unsigned not null自动递增主键,varchar(255)not null,varchar(255)not
我不知道如何使用Laravel框架将新列添加到我现有的数据库表中。 我尝试使用...编辑迁移文件。 在终端中,我执行和。 如何添加新列?
然而,我发现手动操作很不方便。有没有办法告诉Room:我不会接触任何现有的表,所以数据是安全的。请为我创建迁移?
我有一些表,我想在这个表中添加新的列。我想添加默认值为空的字符串列。 我试着这样加上去 或 但我有一个错误