Supabase SQL

Supabase SQL

Star on Github

Add Constraint

Template for adding a constraint.

Add column

Template to add a column. Make sure to change the name and type.

Automatically update timestamps

Update a column timestamp on every update.

CRON job with pg_cron

Schedule PostgreSQL commands directly from the database.

Create View

Basic view template. Change according to your preference.

Create basic table

Basic table template. Change "table_name" to the name you prefer.

Create function

Template to create a simple function.

Create function that return table

Template to create a function a function that return set of table.

Create table with constraints

Table with constraints example.

Create table with foreign key

Table with foreign key (fk) template. Change "table_name" to the name you prefer.

Delete Storage Item

Delete items in Storage using SQL

Drop Constraint

Template for dropping / removing constraint.

Drop Function

Template for dropping / removing function.

Drop RLS

Template for dropping / removing row level security.

Drop Trigger

Template for dropping / removing trigger from table.

Full Text Search

How to use full text search in PostgreSQL.

Generate Youtube-like short ID

Generate YouTube-like short IDs as Postgres Primary Keys.

Increment field value

Update a field with incrementing value using stored procedure.

List all constraints

List all constraints and their tables.

List all foreign keys

List all foreign keys (FKs) and their columns.

List all functions

List all the functions in (predefined/user-defined).

List all primary keys

List all primary keys (PKs) and their columns.

List all table size

List all table data size.

List all triggers

List all the triggers in (predefined/user-defined).

RLS Advanced policies

Row level security with advanced/complicated policies.

RLS Policies with joins

Row level security that requires table joins .

RLS Policies with security definer functions

Row level security that make use of security definer functions .

RLS Read Access

Row level security for read access.

RLS Restrict updates

Row level security for restrict updates.

RLS Time to live for rows

Row level security policies to implement TTL.

RLS Verifying email domains

Row level security that verify email domains.

Rename Constraints

Template to rename any constraints you have.

Show Postgres version

Check your database version.

Stripe subscriptions

Starter template for the Next.js Stripe Subscriptions Starter.

Todo List

Build a todo list with Row Level Security.

Update Constraint

Template for updating a constraint.

Todo List

Build a todo list with Row Level Security.

--
-- For use with:
-- https://github.com/supabase/supabase/tree/master/examples/nextjs-todo-list or
-- https://github.com/supabase/supabase/tree/master/examples/react-todo-list or
-- https://github.com/supabase/supabase/tree/master/examples/sveltejs-todo-list or
-- https://github.com/supabase/supabase/tree/master/examples/vue3-ts-todo-list
--
create table todos (
id bigint generated by default as identity primary key,
user_id uuid references auth.users not null,
task text check (char_length(task) > 3),
is_complete boolean default false,
inserted_at timestamp with time zone default timezone('utc'::text, now()) not null
);

alter table todos enable row level security;

create policy "Individuals can create todos." on todos for
insert with check (auth.uid() = user_id);

create policy "Individuals can view their own todos. " on todos for
select using (auth.uid() = user_id);

create policy "Individuals can update their own todos." on todos for
update using (auth.uid() = user_id);

create policy "Individuals can delete their own todos." on todos for
delete using (auth.uid() = user_id);
Edit this script Updated at Wed, Sep 22, 2021