在Laravel5.1中,对于MySQL insert,我希望查看记录是否已经存在,并在重复时更新,如果不存在,则创建新记录。
我已经搜索了SO,答案是旧laravel版本。在一个旧的主题中,它说去年在core中添加了一个新的updateOrcreate()
方法。但是当我尝试时,我得到了错误:
Integrity constraint violation: 1062 Duplicate entry '1' for key 'app_id'
这是我使用的查询:
AppInfo::updateOrCreate(array(
'app_id' => $postData['appId'],
'contact_email' => $postData['contactEmail']
));
其中,app_id
是该表中唯一的外键,我想更新记录(如果存在)或创建一个新记录。我尝试搜索5.1文档,但找不到我需要的信息。有人能带我到这里吗。。。
我创建了一个在重复密钥上使用MySQL insert的包。
它可能对其他人有用:
https://packagist.org/packages/yadakhov/insert-on-duplicate-key
例子:
/**
* Class User.
*/
class User extends Model
{
use Yadakhov\InsertOnDuplicateKey;
...
}
// associative array must match column names
$users = [
['id' => 1, 'email' => 'user1@email.com', 'name' => 'User One'],
['id' => 2, 'email' => 'user2@email.com', 'name' => 'User Two'],
['id' => 3, 'email' => 'user3@email.com', 'name' => 'User Three'],
];
User::insertOnDuplicateKey($users);
我回答这个问题是因为我找不到任何关于重复密钥更新的答案,尽管我使用的是Laravel 5.4。如果查看Laravel核心代码中的updateOrCreate方法,您将看到Laravel使用了两个不同的查询:一个用于更新,另一个用于创建。因此,有时您可以在数据库中获得重复的数据。因此,在某些情况下,编写这种原始查询可能很有用:
DB::语句(“插入到表名中”(
列1
,列2
)值(?,)在重复密钥更新时,([val_1,val_2]);
希望它能对别人有用。
根据雄辩的模型方法“updateOrCreate()”的定义
函数更新或创建(数组$属性,数组$值 = []){}
这需要两个论点。。。
AppInfo::updateOrCreate(['app_id' => $postData['appId']],
['contact_email' => $postData['contactEmail']]);
目前,我正在用一个查询检查该项是否存在,然后使用put或updateItem,我想更改它并对DDB进行一次调用。我想进行一个将更新或创建项目的查询。 下面是我的项目的一个例子: 项目类型: 如果项目存在,我想推送一个新项目,比如{papa:'dsfadsf'}(永远不要修改fa映射内的现有项目),并修改pa映射内的finish值 这是更新后的项目: 这是我尝试的,但不起作用
问题内容: 我有一个条件,即StringBuilder会不断存储与大型平面文件(100兆字节)中的模式匹配的行。但是,达到条件后,我将StringBuilder变量的内容写入文本文件。 现在我想知道是否应该通过重置对象->使用相同的变量 要么 请提出就性能和OOM问题而言您认为哪个更好。 问题答案: 我认为通话仍然很昂贵,您应该这样做: 重置它。 更新: 查看完 源代码后 ,似乎完整保留了旧缓冲区
问题内容: 我是Elasticsearch的新手,目前正在实现用于搜索的过滤器。到目前为止,我的索引具有以下映射(我已经删除了一些字段): geo_distance字段将在location字段上实现,示例实例如下所示: 即采用geoJSON格式。 我了解我将必须更新索引,以使location字段的类型为,如文档(mapping-geo- point )中所述。似乎我必须删除索引并创建一个新索引,但
对于一个小的新项目,我决定尝试一下JDBI(通常我使用hibernate/jpa)。 我喜欢使用@SqlUpdate/@Sql Query创建轻量级、基于注释的dao。 但是:在某些情况下,我无法确定是要创建实体还是更新现有实体。我会放置一个“选择”语句,并根据其返回值使用插入或更新语句。 问题:jdbi中的“仅接口”道是否以某种方式支持这一点?还是我必须自己编写一个“createOrUpdate
问题内容: 我想创建一个模型对象,例如Person,如果不存在person的id,否则我将获得该person对象。 创建新人员的代码如下: 但是我不知道在哪里检查并获取现有的人对象。 问题答案: Django中已经有一个,https://docs.djangoproject.com/en/dev/ref/models/querysets/#get- or-create 对你来说可能是:
是否可以使用Java中的任何开源工具或API在jira中导入excel/csv文件(其中包含jira问题的详细信息,如标题、描述、类型、优先级)? 它应该记录小时数并更新评论。 编辑:我不想上传excel文件,而不是我想使用excel/csv文件上传在jira上创建/更新问题。