We value your privacy

This site uses cookies to improve your browsing experience, analyze site traffic, and show personalized content. See our Privacy Policy.

  1. MooseStack
  2. Data Types
  3. Enum Types

Enum Types

Enums map to ClickHouse enums, storing categorical values efficiently.

String Enums

enum UserRole {  ADMIN = "admin",  USER = "user",  GUEST = "guest"} enum Status {  PENDING = "pending",  ACTIVE = "active",  INACTIVE = "inactive"} interface User {  role: UserRole;  status: Status;}

Numeric Enums

enum Priority {  LOW = 1,  MEDIUM = 2,  HIGH = 3,  CRITICAL = 4} interface Task {  priority: Priority;}
Storage efficiency

Enums are stored as integers internally, making them more storage-efficient than strings while maintaining readability in queries.

Enum modifications

Adding new enum values is safe, but removing or renaming values requires careful migration planning as it affects existing data.

See Also

  • Strings — When you need arbitrary string values
  • LowCardinality — Alternative for dynamic low-cardinality values
  • ClickHouse Enum — ClickHouse official documentation

On this page

String EnumsNumeric EnumsSee Also
FiveonefourFiveonefour
Fiveonefour Docs
MooseStackHostingTemplatesGuides
Release Notes
Source531
  • Overview
Build a New App
  • 5 Minute Quickstart
  • Browse Templates
  • Existing ClickHouse
Add to Existing App
  • Next.js
  • Fastify
Fundamentals
  • Moose Runtime
  • MooseDev MCP
  • Language Server
  • Data Modeling
Moose Modules
  • Moose OLAP
  • Moose Streaming
  • Moose Workflows
  • Moose APIs & Web Apps
Deployment & Lifecycle
  • Moose Dev
  • Moose Migrate
  • Moose Deploy
Reference
  • API Reference
  • Data Types
    • Strings
    • LowCardinality
    • Integers
    • Floats
    • Decimals
    • Booleans
    • Date & Time
    • Network
    • Arrays
    • Maps
    • Nested
    • Tuples
    • Enums
    • Geometry
    • JSON
    • Nullable
    • Aggregates
  • Table Engines
  • CLI
  • Configuration
  • Observability Metrics
  • Help
  • Release Notes
Contribution
  • Documentation
  • Framework
enum UserRole {  ADMIN = "admin",  USER = "user",  GUEST = "guest"} enum Status {  PENDING = "pending",  ACTIVE = "active",  INACTIVE = "inactive"} interface User {  role: UserRole;  status: Status;}
enum Priority {  LOW = 1,  MEDIUM = 2,  HIGH = 3,  CRITICAL = 4} interface Task {  priority: Priority;}