Similarly, let’s say we want to update two fields, salary and bonus.If we want to update more than one column, whereas previously we specified the new value using a scalar, when there is more than one column to update, we use an Array Ref.If there is no database-specific subclass for the database in use, then will just use the base class which implements approaches that should work for any SQL database.At the time of writing, the only database-specific subclass is for Postgre SQL. Let’s expand the original table a bit: “name” has now been split into “first_name” and “last_name”.
In this case, will spot that the target values are all 1200, and will effect the desired changes using a single UPDATE statement as described above.So, given a list of updates to apply we could effect them using the following steps: So in the example above we can reduce five statements to four. But now the number of statements is no longer directly dependent on the number of rows requiring updates.Even if we wanted to update a thousand rows with different values, we could still do it with four statements.(It will use placeholders and parameter binding if it thinks it’s appropriate.) If given our second example with two distinct values, will spot that there are two distinct values, 12, and will effect this with two UPDATE statements as described above.Optimising the number of UPDATEs by grouping the distinct SET values can be done in a way which is compatible with most common SQL databases. FROM approach requires knowledge of the specific SQL database being used.We can easily contrive for an “updates” table to exist by creating a temporary table and populating it.