Create data: insert()
Performs an INSERT into the table.
const { data, error } = await supabase
.from('cities')
.insert([
{ name: 'The Shire', country_id: 554 }
])
Parameters
valuesrequired
Partial
|array
The values to insert.
optionsoptional
undefined
|reflection
No description provided.
Notes
- By default, every time you run
insert()
, the client library will make aselect
to return the full record. This is convenient, but it can also cause problems if your Policies are not configured to allow theselect
operation. If you are using Row Level Security and you are encountering problems, try setting thereturning
param tominimal
.
Examples
Create a record
const { data, error } = await supabase
.from('cities')
.insert([
{ name: 'The Shire', country_id: 554 }
])
Bulk create
When running a bulk create, the operation is handled in a single transaction. If any of the inserts fail, all other operations are rolled back.
const { data, error } = await supabase
.from('cities')
.insert([
{ name: 'The Shire', country_id: 554 },
{ name: 'Rohan', country_id: 555 },
])
Upsert
For upsert, if set to true, primary key columns would need to be included in the data parameter in order for an update to properly happen. Also, primary keys used must be natural, not surrogate. There are however, workarounds for surrogate primary keys.
const { data, error } = await supabase
.from('cities')
.insert(
[
{ name: 'The Shire', country_id: 554 },
{ name: 'Rohan', country_id: 555 },
{ name: 'City by the Bay', country_id:840}
],
{ upsert: true })