# runPrepUpdate vs runUpdateQuery

**URL:** <https://forum.inductiveautomation.com/t/runprepupdate-vs-runupdatequery/75197>\
**Category:** Ignition\
**Tags:** database, scripting\
**Created:** [June 19, 2023, 9:04am UTC](https://forum.inductiveautomation.com/t/runprepupdate-vs-runupdatequery/75197 "2023-06-19T09:04:00Z")\
**Posts on this page:** 1\
**Showing post:** 16

<div class="post-metadata">

**Author:** ![pturmel](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/pturmel/32/3295_2.png) [@pturmel](https://forum.inductiveautomation.com/u/pturmel)\
**Post date:** [June 18, 2024, 7:16pm UTC](https://forum.inductiveautomation.com/t/runprepupdate-vs-runupdatequery/75197/16 "2024-06-18T19:16:37Z")

</div>

Absolutely use the `runPrepUpdate`.

If you have a competent DB brand and JDBC driver, you have another, more efficient option:

> [@Taking a Dataset and Inserting it to a SQL temp table](https://forum.inductiveautomation.com/t/taking-a-dataset-and-inserting-it-to-a-sql-temp-table/83852/4):
>
> If you were using a competent database (the following is PostgreSQL), you can pass java arrays as arguments, and unnest() them in a FROM clause. For an example, I created a table in my psql forum playground called phrases, to be used in a join. When queried by itself, you get this dataset: "#NAMES" "prefix","suffix" "#TYPES" "str","I" "#ROWS","4" "Hello","1" "Good Bye","2" "Welcome to","3" "Whoa!","4" To go with that, in a custom property named lookups, I created the following unbound datase…

---

_[View the full topic](https://forum.inductiveautomation.com/t/runprepupdate-vs-runupdatequery/75197)._
