PostgreSQL
Beginner
1 min read
Creating Databases, Schemas, and Tables
Example
-- Create a database
CREATE DATABASE myappdb
WITH ENCODING = 'UTF8'
LC_COLLATE = 'en_US.UTF-8'
LC_CTYPE = 'en_US.UTF-8';
-- Create a schema
CREATE SCHEMA IF NOT EXISTS shop;
-- Create a table with various constraints
CREATE TABLE shop.products (
id SERIAL PRIMARY KEY,
sku VARCHAR(50) NOT NULL UNIQUE,
name VARCHAR(255) NOT NULL,
description TEXT,
price NUMERIC(10,2) NOT NULL CHECK (price >= 0),
stock INTEGER NOT NULL DEFAULT 0 CHECK (stock >= 0),
category_id INTEGER REFERENCES shop.categories(id) ON DELETE SET NULL,
is_active BOOLEAN NOT NULL DEFAULT TRUE,
created_at TIMESTAMPTZ NOT NULL DEFAULT NOW(),
updated_at TIMESTAMPTZ NOT NULL DEFAULT NOW()
);
-- Multi-column unique constraint (table-level)
ALTER TABLE shop.products
ADD CONSTRAINT uq_products_name_category UNIQUE (name, category_id);
-- Auto-update updated_at via a trigger
CREATE OR REPLACE FUNCTION update_updated_at()
RETURNS TRIGGER AS $$
BEGIN
NEW.updated_at = NOW();
RETURN NEW;
END;
$$ LANGUAGE plpgsql;
CREATE TRIGGER trg_products_updated_at
BEFORE UPDATE ON shop.products
FOR EACH ROW EXECUTE FUNCTION update_updated_at();
Related Resources
PostgreSQL Reference
Complete tag & property list
PostgreSQL How-To Guides
Step-by-step practical guides
PostgreSQL Exercises
Practice what you've learned
More in PostgreSQL