Inserts, Updates, and Deletes
The following methods all have the same return value:
insert
, update
, and delete
actions always return a query object for query
, regardless of your configured returnFormat
.
insert
Name
Type
Required
Default
Description
values
struct | array<struct>
true
A struct or array of structs to insert in to the table.
options
struct
false
{}
Any additional queryExecute
options.
toSQL
boolean
false
false
If true
, returns the raw SQL string instead of running the query. Useful for debugging.
You can insert a single record by passing a struct:
You can specify any query param options such as the SQL type by passing a struct with the parameters you would pass to cfqueryparam
.
Raw values can be supplied to an insert statement.
Multiple rows can be inserted in a batch by passing an array of structs to insert
.
This is not the same as looping over and array and calling insert
in the loop. Using an array with insert
will batch the inserts in one SQL call. Looping over an array and calling insert
each time will create a SQL request for each item in the array. Bottom line, pass your array to insert
!
returning
Name
Type
Required
Default
Description
columns
string | array
true
A single column, a list or columns, or an array of columns to return from the inserted query.
returning
is only supported in PostgresGrammar
and SqlServerGrammar
. Using this method on unsupported grammars will result in an UnsupportedOperation
exception. Be aware that using this method constrains your grammar choices.
Specifies columns to be returned from the insert query.
update
Name
Type
Required
Default
Description
values
struct
false
{}
options
struct
false
{}
Any additional queryExecute
options.
toSQL
boolean
false
false
If true
, returns the raw SQL string instead of running the query. Useful for debugging.
Updates a table with a struct of column and value pairs.
You can specify any query param options such as the SQL type by passing a struct with the parameters you would pass to cfqueryparam
.
Any constraining of the update query should be done using the appropriate WHERE statement before calling update
.
You can update a column based on another column using a raw expression.
Updating Null values
Null values can be inserted by using queryparam syntax:
if you are using Lucee with full null support the following (easier) syntax is also allowed:
addUpdate
Name
Type
Required
Default
Description
values
struct
true
A struct of column and value pairs to add to the update clause.
Adds values to a later update
, similar to addSelect
.
updateOrInsert
Name
Type
Required
Default
Description
values
struct
true
A struct of column and value pairs to either update or insert.
options
boolean
false
{}
Any additional queryExecute
options.
toSql
boolean
false
false
If true
, returns the raw SQL string instead of running the query. Useful for debugging.
Performs an update statement if the configured query returns true
for exists
. Otherwise, performs an insert statement.
If an update statement is performed qb applies a limit( 1 )
to the update statement.
If the configured query returns 0 records, then an insert statement is performed.
delete
Name
Type
Required
Default
Description
id
any
false
idColumn
string
false
"id"
The name of the id column for the delete shorthand.
options
boolean
false
{}
Any additional queryExecute
options.
toSql
boolean
false
false
If true
, returns the raw SQL string instead of running the query. Useful for debugging.
Deletes all records that the query returns.
The id
argument is a convenience to delete a single record by id.
Last updated