标签: insert-update

在rails中更新表单 - 没有路由匹配[PUT]

我有一个表单来创建广告.

控制器:

  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)

forms routes insert-update ruby-on-rails-3

5
推荐指数
1
解决办法
1万
查看次数

Postgres 上的更新:更新所有字段

我正在尝试在 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允许我更新该行的所有字段的内容。我不确定语法应该是什么,因为文档没有解释它,也没有例子可以做到这一点。

谢谢!

sql postgresql upsert insert-update

5
推荐指数
1
解决办法
2076
查看次数

使用翻转 API 时更新 ElasticSearch (ES) 中的现有文档

我有一个数据源,它将创建大量我计划存储在 ElasticSearch 中的条目。源在 ElasticSearch 中为同一个文档创建了两个条目:

  • 'init' 部分在 ES 中的随机密钥下记录初始化时间和其他详细信息
  • 'finish' 部分包含主要数据,并在 init 的随机密钥下更新 ES 中最初创建的文档(合并)。

我需要在 ElasticSearch 中使用基于时间的索引,使用rollover index使用指向实际索引的别名。对于更新,我将使用更新 API来合并 init 和 finish。

问题:如果带有随机键的 init 文档不在当前索引中(但在一个已经翻转的旧索引中)是否会使用它的键成功执行更新它?如果没有,执行更新的最佳做法是什么?

rollover insert-update elasticsearch

5
推荐指数
1
解决办法
795
查看次数

如何使用 Azure 数据工厂 v2 在 Azure SQL 数据库的所有表中更新插入/插入记录

我有一个 Azure SQL 数据库,其中包含许多表,我希望使用 Azure 数据工厂 v2 经常更新这些表,以进行任何更改(无论是更新还是插入)。文档中有一节解释了如何执行此操作。但是,该示例涉及两个表,需要为每个表定义一个 TYPE,并为每个表构建一个存储过程。我不知道如何将其推广到大量表格。任何建议都将受到欢迎。

multiple-tables insert-update azure azure-data-factory

5
推荐指数
1
解决办法
3662
查看次数

映射集合以更新插入到数据库中。如何批量更新插入?

假设我有一个来自前端的数据结构,如下所示:

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)

javascript database insert-update prisma prisma2

5
推荐指数
1
解决办法
6655
查看次数

如何在 django Rest 框架中使用 ListSerializer 创建和更新多条记录?

以下是使用 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

5
推荐指数
0
解决办法
4253
查看次数

Prolog创建一个列表

我必须创建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)

list prolog insert-update

4
推荐指数
1
解决办法
2万
查看次数

SQL Server - 基于另一个列值更新列

如何更新一列中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.Dog
  • 如果tableA.Value = Cat那么更新TableA.Value = TableB.Cat
  • 如果tableA.Value = Rabbit那么更新TableA.Value = TableB.Rabbit

注意:只有3个选项,所以硬编码是可以的.

结果

表A.

Location Type  Value
USA      Dog   50
UK       Cat   70
Run Code Online (Sandbox Code Playgroud)

insert-update sql-server-2008 sql-update

4
推荐指数
1
解决办法
7950
查看次数

在SQLite数据库中的特定位置插入一行

我在SQLite Manager中创建了数据库,但是我忘了提到一行.

现在,我想手动在中间添加一行,在其下方,其余的自动增量键应自动增加1.我希望我的问题很清楚.

谢谢.

sql sqlite insert-update sql-update android-sqlite

4
推荐指数
2
解决办法
4940
查看次数

删除后,Cassandra UPDATE无法正常工作

我在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.有什么建议?

cql insert-update cassandra nosql datastax-java-driver

4
推荐指数
1
解决办法
437
查看次数