PostgreSQL Reserved Words
These are words Postgres reserves for its own SQL grammar. Don't use them as Bubble table or column names — every SQL query against your migrated database will need extra quoting if you do.
The list
91 words in total. Match is case-insensitive — so USER, User, and user all match.
- all
- alter
- analyse
- analyze
- and
- any
- array
- as
- asc
- asymmetric
- authorization
- binary
- both
- case
- cast
- check
- collate
- column
- constraint
- create
- current_catalog
- current_date
- current_role
- current_time
- current_timestamp
- current_user
- default
- deferrable
- delete
- desc
- distinct
- do
- drop
- else
- end
- except
- false
- fetch
- for
- foreign
- from
- grant
- group
- having
- in
- index
- initially
- insert
- intersect
- into
- is
- join
- key
- leading
- limit
- localtime
- localtimestamp
- not
- null
- offset
- on
- only
- or
- order
- placing
- primary
- references
- returning
- select
- session_user
- some
- symmetric
- table
- then
- to
- trailing
- transaction
- true
- union
- unique
- update
- user
- using
- value
- variadic
- verbose
- view
- when
- where
- window
- with
Common ones to watch for
The most common Bubble table names that hit this list:
User— Bubble's default User table is fine because PlanB renames it automatically, but customUser-named tables need attention.Order— common in e-commerce apps.Group— common in community apps.Key,Value— common in settings/config tables.
Authoritative source
For the canonical list, see PostgreSQL Documentation: SQL Key Words. The list above covers the words PlanB checks during migration.
Related
Need help? Email [email protected] or DM in the Bubble forum.