> ## Documentation Index
> Fetch the complete documentation index at: https://docs.kinetica.com/llms.txt
> Use this file to discover all available pages before exploring further.

# updateRecordsRaw

<div className="kinetica-doxygen">
  <div id="aec630804a68e7111c06d73b95e975dc9" />

  <h2 className="memtitle"><span className="permalink"><a href="#aec630804a68e7111c06d73b95e975dc9">◆ </a></span>updateRecordsRaw()</h2>

  <div className="memitem">
    <div className="memproto">
      <table className="mlabels">
        <tr>
          <td className="mlabels-left">
            <table className="memname">
              <tr>
                <td className="memname"><a className="el" href="/content/api/cs/classkinetica_1_1UpdateRecordsResponse">UpdateRecordsResponse</a> kinetica.Kinetica.updateRecordsRaw </td>
                <td>(</td>
                <td className="paramtype"><a className="el" href="/content/api/cs/classkinetica_1_1RawUpdateRecordsRequest">RawUpdateRecordsRequest</a></td>
                <td className="paramname"><span className="paramname"><span className="em">request\_</span></span></td>
                <td>)</td>

                <td />
              </tr>
            </table>
          </td>

          <td className="mlabels-right"> <span className="mlabels"><span className="mlabel inline">inline</span></span> </td>
        </tr>
      </table>
    </div>

    <div className="memdoc">
      <p>Runs multiple predicate-based updates in a single call. </p>
      <p>With the list of given expressions, any matching record's column values will be updated as provided in <a className="el" href="/content/api/cs/classkinetica_1_1RawUpdateRecordsRequest#a844b7212b1b311a321c636a21716c169">new\_values\_maps</a>. There is also an optional 'upsert' capability where if a particular predicate doesn't match any existing record, then a new record can be inserted.</p>
      <p>Note that this operation can only be run on an original table and not on a result view.</p>
      <p>This operation can update primary key values. By default only 'pure primary key' predicates are allowed when updating primary key values. If the primary key for a table is the column 'attr1', then the operation will only accept predicates of the form: "attr1 == 'foo'" if the attr1 column is being updated. For a composite primary key (e.g. columns 'attr1' and 'attr2') then this operation will only accept predicates of the form: "(attr1 == 'foo') and (attr2 == 'bar')". Meaning, all primary key columns must appear in an equality predicate in the expressions. Furthermore each 'pure primary key' predicate must be unique within a given request. These restrictions can be removed by utilizing some available options through <a className="el" href="/content/api/cs/classkinetica_1_1RawUpdateRecordsRequest#a6060cd205bc37e96523977f0faaa5de5">options</a>.</p>
      <p>The <a className="el" href="/content/api/cs/structkinetica_1_1RawUpdateRecordsRequest_1_1Options#aad8f49defeadb5a2af9e34ec3e0b9e71">UPDATE\_ON\_EXISTING\_PK</a> option specifies the record primary key collision policy for tables with a <a href="/content/concepts/tables/#primary-keys" target="_top">primary key</a>, while <a className="el" href="/content/api/cs/structkinetica_1_1RawUpdateRecordsRequest_1_1Options#a8b243bd95d34d76f8ef9ab2e56f2df20">IGNORE\_EXISTING\_PK</a> specifies the record primary key collision error-suppression policy when those collisions result in the update being rejected. Both are ignored on tables with no primary key.</p>

      <div className="dl params">
        <div className="dt">Parameters</div>

        <div className="dd">
          <table className="params">
            <tr>
              <td className="paramname">request\_</td>
              <td>Request object containing the parameters for the operation.</td>
            </tr>
          </table>
        </div>
      </div>

      <div className="dl section return">
        <div className="dt">Returns</div>
        <div className="dd">Response object containing the result of the operation. </div>
      </div>

      <p className="definition">Definition at line <a className="el" href="https://github.com/kineticadb/kinetica-api-cs/blob/master/Kinetica/KineticaFunctions.cs#L64373">64373</a> of file <a className="el" href="https://github.com/kineticadb/kinetica-api-cs/blob/master/Kinetica/KineticaFunctions.cs">KineticaFunctions.cs</a>.</p>
    </div>
  </div>

  <div id="aa2628f2ea3e4cff2d124d7330687fd35" />

  <h2 className="memtitle"><span className="permalink"><a href="#aa2628f2ea3e4cff2d124d7330687fd35">◆ </a></span>UpdateRecordsRawAsync()</h2>

  <div className="memitem">
    <div className="memproto">
      <table className="mlabels">
        <tr>
          <td className="mlabels-left">
            <table className="memname">
              <tr>
                <td className="memname">async System.Threading.Tasks.Task\< <a className="el" href="/content/api/cs/classkinetica_1_1UpdateRecordsResponse">UpdateRecordsResponse</a> > kinetica.Kinetica.UpdateRecordsRawAsync </td>
                <td>(</td>
                <td className="paramtype"><a className="el" href="/content/api/cs/classkinetica_1_1RawUpdateRecordsRequest">RawUpdateRecordsRequest</a></td>
                <td className="paramname"><span className="paramname"><span className="em">request\_</span></span>, </td>
              </tr>

              <tr>
                <td className="paramkey" />

                <td />

                <td className="paramtype">System.Threading.CancellationToken</td>
                <td className="paramname"><span className="paramname"><span className="em">cancellationToken</span></span><span className="paramdefsep"> = </span><span className="paramdefval">default</span> )</td>
              </tr>
            </table>
          </td>

          <td className="mlabels-right"> <span className="mlabels"><span className="mlabel inline">inline</span></span> </td>
        </tr>
      </table>
    </div>

    <div className="memdoc">
      <p>Runs multiple predicate-based updates in a single call. </p>
      <p>(async) </p>
      <p>With the list of given expressions, any matching record's column values will be updated as provided in <a className="el" href="/content/api/cs/classkinetica_1_1RawUpdateRecordsRequest#a844b7212b1b311a321c636a21716c169">new\_values\_maps</a>. There is also an optional 'upsert' capability where if a particular predicate doesn't match any existing record, then a new record can be inserted.</p>
      <p>Note that this operation can only be run on an original table and not on a result view.</p>
      <p>This operation can update primary key values. By default only 'pure primary key' predicates are allowed when updating primary key values. If the primary key for a table is the column 'attr1', then the operation will only accept predicates of the form: "attr1 == 'foo'" if the attr1 column is being updated. For a composite primary key (e.g. columns 'attr1' and 'attr2') then this operation will only accept predicates of the form: "(attr1 == 'foo') and (attr2 == 'bar')". Meaning, all primary key columns must appear in an equality predicate in the expressions. Furthermore each 'pure primary key' predicate must be unique within a given request. These restrictions can be removed by utilizing some available options through <a className="el" href="/content/api/cs/classkinetica_1_1RawUpdateRecordsRequest#a6060cd205bc37e96523977f0faaa5de5">options</a>.</p>
      <p>The <a className="el" href="/content/api/cs/structkinetica_1_1RawUpdateRecordsRequest_1_1Options#aad8f49defeadb5a2af9e34ec3e0b9e71">UPDATE\_ON\_EXISTING\_PK</a> option specifies the record primary key collision policy for tables with a <a href="/content/concepts/tables/#primary-keys" target="_top">primary key</a>, while <a className="el" href="/content/api/cs/structkinetica_1_1RawUpdateRecordsRequest_1_1Options#a8b243bd95d34d76f8ef9ab2e56f2df20">IGNORE\_EXISTING\_PK</a> specifies the record primary key collision error-suppression policy when those collisions result in the update being rejected. Both are ignored on tables with no primary key.</p>

      <div className="dl params">
        <div className="dt">Parameters</div>

        <div className="dd">
          <table className="params">
            <tr>
              <td className="paramname">request\_</td>
              <td>Request object containing the parameters for the operation.</td>
            </tr>

            <tr>
              <td className="paramname">cancellationToken</td>
              <td>Cancellation token to cancel the operation.</td>
            </tr>
          </table>
        </div>
      </div>

      <div className="dl section return">
        <div className="dt">Returns</div>
        <div className="dd">Task that returns the response object containing the result of the operation.</div>
      </div>

      <p className="definition">Definition at line <a className="el" href="https://github.com/kineticadb/kinetica-api-cs/blob/master/Kinetica/KineticaFunctions.cs#L64418">64418</a> of file <a className="el" href="https://github.com/kineticadb/kinetica-api-cs/blob/master/Kinetica/KineticaFunctions.cs">KineticaFunctions.cs</a>.</p>
    </div>
  </div>
</div>
