我有一个表单来创建广告.
控制器:
def edit
@engines = Engine.all
@car = Car.find(params[:id])
end
def update
@car = Car.find(params[:id])
if @car.save
redirect_to root_path
end
end
Run Code Online (Sandbox Code Playgroud)
我的路线:
resources :adverts
Run Code Online (Sandbox Code Playgroud)
Create.html.erb
<%= form_for @car, :url => adverts_path do |f| %>
<div><%= f.label :name %><br />
<%= f.text_field :name %></div>
<%= hidden_field_tag :model_id, params[:model_id] %>
<%= select_tag :engine_id, options_from_collection_for_select(@engines, "id", "name",:selected=>@car.engine_id) %>
<div><%= f.submit "Create car!" %></div>
<% end %>
Run Code Online (Sandbox Code Playgroud)
我可以创建广告,但我不能更新它.
edit.html.erb
<%= form_for @car, :url => adverts_path do |f| %>
<div><%= f.label :name %><br /> …Run Code Online (Sandbox Code Playgroud) 我正在尝试在 postgres 中实现一个 upsert(一个插入约束更新)。这是我的 sql 的样子:
INSERT into "foo" ("bar", "moo", "baz") VALUES (1, 2, 3), (3, 4, 5)
ON CONFLICT ON CONSTRAINT "composite_primary_key" DO NOTHING
Run Code Online (Sandbox Code Playgroud)
我想修改 DO NOTHING允许我更新该行的所有字段的内容。我不确定语法应该是什么,因为文档没有解释它,也没有例子可以做到这一点。
谢谢!
我有一个数据源,它将创建大量我计划存储在 ElasticSearch 中的条目。源在 ElasticSearch 中为同一个文档创建了两个条目:
我需要在 ElasticSearch 中使用基于时间的索引,使用rollover index使用指向实际索引的别名。对于更新,我将使用更新 API来合并 init 和 finish。
问题:如果带有随机键的 init 文档不在当前索引中(但在一个已经翻转的旧索引中)是否会使用它的键成功执行更新它?如果没有,执行更新的最佳做法是什么?
我有一个 Azure SQL 数据库,其中包含许多表,我希望使用 Azure 数据工厂 v2 经常更新这些表,以进行任何更改(无论是更新还是插入)。文档中有一节解释了如何执行此操作。但是,该示例涉及两个表,需要为每个表定义一个 TYPE,并为每个表构建一个存储过程。我不知道如何将其推广到大量表格。任何建议都将受到欢迎。
假设我有一个来自前端的数据结构,如下所示:
const userData = [
{
id: 11223,
bb: [
{
id: 12,
},
{
id: 34,
bbb: "bbb",
},
],
},
{
id:4234,
...
},
];
Run Code Online (Sandbox Code Playgroud)
因为,没有/部分/全部数据可能已经在数据库中,这是我想出的:
const collection = [];
for (let i = 0; i < userData.length; i++) {
const cur = userData[i];
const subCur = cur.bb;
const updatedCur = await db.cur.upsert({
where: {
id : cur.id
},
update: {
...
},
create: {
...
},
})
);
collection.push(updatedCur);
for (let j = 0; j < subCur.length; …Run Code Online (Sandbox Code Playgroud) 以下是使用 ListSerializer 在 django Rest 框架中一次创建和更新多个记录的方法。这种方式非常排序并且响应速度快。
当您想要创建对象时,请传递id: null因为id是必填字段,当您想要更新记录时,请传递特定 id。
答案如下:
模型.py
class BookDetail(models.Model):
author = models.ForeignKey('bookapp.Author', null=True, on_delete=models.CASCADE)
title = models.CharField(max_length=255, null=True, blank=True)
price = models.CharField(max_length=100, null=True, blank=True)
discount = models.FloatField(default=0)
tax_percentage = models.IntegerField(default=0)
total_price = models.FloatField(default=0)
created_at = models.DateTimeField(auto_now_add=True, editable=False)
modified_at = models.DateTimeField(auto_now=True)
Run Code Online (Sandbox Code Playgroud)
序列化器.py
class BookDetailsListSerializer(serializers.ListSerializer):
def update(self, instance, validated_data):
# Perform creations and updates.
ret = []
for data in validated_data:
if "id" in data and data['id'] not in ['', None]:
BookDetail.objects.filter(id=data['id']).update(**data)
ret.append(data)
else: …Run Code Online (Sandbox Code Playgroud) python django multiple-instances insert-update django-rest-framework
我必须创建n个元素的列表,例如,
do_list(5,L1).
Run Code Online (Sandbox Code Playgroud)
应该回来,
L1=[1,2,3,4,5].
Run Code Online (Sandbox Code Playgroud)
这就是我所拥有的,但它不起作用.
do_list(X,L1):- X1 is X-1, do_list(X1,[X1|L1]).
do_list(0,[]).
Run Code Online (Sandbox Code Playgroud) 如何更新一列中TableA的值在另一个表中发现,Table B根据另一列Type中,TableA
例如
表A.
Location Type Value
USA Dog 20
UK Cat 30
Run Code Online (Sandbox Code Playgroud)
表B.
Dog Cat Rabbit
50 70 100
Run Code Online (Sandbox Code Playgroud)
逻辑:
tableA.Value = Dog那么更新TableA.Value = TableB.DogtableA.Value = Cat那么更新TableA.Value = TableB.CattableA.Value = Rabbit那么更新TableA.Value = TableB.Rabbit注意:只有3个选项,所以硬编码是可以的.
结果
表A.
Location Type Value
USA Dog 50
UK Cat 70
Run Code Online (Sandbox Code Playgroud) 我在SQLite Manager中创建了数据库,但是我忘了提到一行.
现在,我想手动在中间添加一行,在其下方,其余的自动增量键应自动增加1.我希望我的问题很清楚.
谢谢.
我在Cassandra中使用了宽行模式.我的表定义如下:
CREATE TABLE usertopics (
key text,
topic text,
score counter,
PRIMARY KEY (key, topic)
)
Run Code Online (Sandbox Code Playgroud)
我正在插入条目使用:
UPDATE usertopics SET score = score + ? WHERE key=? AND topic=?
Run Code Online (Sandbox Code Playgroud)
这样如果密钥不存在,它将插入,如果它存在,它将更新.
我正在删除使用的条目:
Delete form usertopics where key in ?
Run Code Online (Sandbox Code Playgroud)
但删除后,当我再次尝试更新时,它没有更新.它没有给出任何错误,但它也没有反映在db中.
当我截断表格时,它再次完美插入.我正在使用Datastax java驱动程序访问Cassandra.有什么建议?