Query and Mutation
// get all
const { data, error } = await supabase
.from('countries')
.select()
// filters
const { data, error } = await supabase
.from('cities')
.select('name, country_id') // select before eq
.eq('name', 'The Shire') // eq comes after select
.neq('name', 'The Basquat') // not equals to
// insert/create
const { error } = await supabase
.from('countries')
.insert({ id: 1, name: 'Denmark' })
// update
const { error } = await supabase
.from('countries')
.update({ name: 'Australia' })
.eq('id', 1)
// upsert
const { data, error } = await supabase
.from('countries')
.upsert({ id: 1, name: 'Albania' })
.select()
// delete
const response = await supabase
.from('countries')
.delete()
.eq('id', 1)
Query Typing
// complex queries
import { QueryResult, QueryData, QueryError } from '@supabase/supabase-js'
const countriesWithCitiesQuery = supabase
.from("countries")
.select(`
id,
name,
cities (
id,
name
)
`);
type CountriesWithCities = QueryData<typeof countriesWithCitiesQuery>;
const { data, error } = await countriesWithCitiesQuery;
if (error) throw error;
const countriesWithCities: CountriesWithCities = data;