Advanced Database Features

WoWSQL supports advanced MySQL features like stored procedures, triggers, views, and scheduled events.

Stored Procedures

Create reusable SQL logic:

POST /api/v2/procedures

Headers:
  Authorization: Bearer YOUR_API_KEY
  X-Project-Slug: your-project-slug
  Content-Type: application/json

Body:
{
  "name": "get_user_stats",
  "parameters": [
    {"name": "user_id", "type": "INT", "mode": "IN"}
  ],
  "body": "BEGIN SELECT COUNT(*) FROM orders WHERE user_id = user_id; END",
  "comment": "Get user order statistics"
}

Call a Stored Procedure

POST /api/v2/procedures/{name}/call

Headers:
  Authorization: Bearer YOUR_API_KEY
  X-Project-Slug: your-project-slug
  Content-Type: application/json

Body:
{
  "parameters": {"user_id": 1}
}

Database Triggers

Automatically execute SQL on INSERT/UPDATE/DELETE:

POST /api/v2/triggers

Headers:
  Authorization: Bearer YOUR_API_KEY
  X-Project-Slug: your-project-slug
  Content-Type: application/json

Body:
{
  "name": "update_timestamp",
  "table": "users",
  "timing": "BEFORE",
  "event": "UPDATE",
  "body": "SET NEW.updated_at = NOW()"
}

Database Views

Create virtual tables from complex queries:

POST /api/v2/views

Headers:
  Authorization: Bearer YOUR_API_KEY
  X-Project-Slug: your-project-slug
  Content-Type: application/json

Body:
{
  "name": "active_users",
  "definition": "SELECT * FROM users WHERE status = 'active'"
}

Query a View

GET /api/v2/views/{name}/data

Headers:
  Authorization: Bearer YOUR_API_KEY
  X-Project-Slug: your-project-slug

Scheduled Events

Run SQL tasks on a schedule (like cron jobs):

POST /api/v2/events

Headers:
  Authorization: Bearer YOUR_API_KEY
  X-Project-Slug: your-project-slug
  Content-Type: application/json

Body:
{
  "name": "daily_cleanup",
  "schedule": "EVERY 1 DAY",
  "body": "DELETE FROM logs WHERE created_at < DATE_SUB(NOW(), INTERVAL 30 DAY)"
}