Keyboard Shortcuts & Multi-Database Support
Full shortcut reference, plus how the workbench holds many heterogeneous engines open at once and where per-dialect capability actually diverges.
Keyboard Shortcuts
| Category | Action | Windows / Linux | macOS |
|---|---|---|---|
| Execution | Execute Query | Ctrl+Enter | Cmd+Enter |
| Execution | Execute Selected Text | Ctrl+Shift+Enter | Cmd+Shift+Enter |
| Tabs | New Tab | Ctrl+T | Cmd+T |
| Tabs | Close Tab | Ctrl+W | Cmd+W |
| Tabs | Next Tab | Ctrl+Tab | Ctrl+Tab |
| Tabs | Previous Tab | Ctrl+Shift+Tab | Ctrl+Shift+Tab |
| File | Save Query | Ctrl+S | Cmd+S |
| Search | Find | Ctrl+F | Cmd+F |
| Search | Find and Replace | Ctrl+H | Cmd+H |
| Formatting | Format SQL | Ctrl+Shift+F | Cmd+Shift+F |
| Editing | Toggle Line Comment | Ctrl+/ | Cmd+/ |
| Editing | Toggle Block Comment | Ctrl+Shift+/ | Cmd+Shift+/ |
| Editing | Undo | Ctrl+Z | Cmd+Z |
| Editing | Redo | Ctrl+Y or Ctrl+Shift+Z | Cmd+Shift+Z |
| Editing | Duplicate Line | Ctrl+Shift+D | Cmd+Shift+D |
| Editing | Move Line Up / Down | Alt+Up / Alt+Down | Option+Up / Option+Down |
| Selection | Select All | Ctrl+A | Cmd+A |
| Selection | Select Line | Ctrl+L | Cmd+L |
| Layout | Toggle Sidebar | Ctrl+B | Cmd+B |
Concurrent Heterogeneous Sessions
Each tab pins its own connection context, so a Postgres read replica, a MySQL staging instance, and a Redis dev keyspace can be live in adjacent tabs simultaneously. Switching tabs never disconnects or reconnects, server-side pools stay warm in the background and are reaped only on idle timeout. Pools are established on first use (first query or schema load), hold a small concurrency budget per connection, and are torn down when the connection is dropped. There is no cross-connection JOIN, each statement executes against exactly one connection; compare across engines by running parallel tabs and diffing the grids or exported result sets.
Per-Dialect Capability Matrix
Capabilities are surfaced per engine rather than assumed uniform. The IDE enables only what the connected engine actually supports:
| Capability | PostgreSQL | MySQL/MariaDB | SQL Server | Oracle | MongoDB | SQLite | Redis |
|---|---|---|---|---|---|---|---|
| Schema navigator | Full | Full | Full | Full | Collections + sampled fields | Full | Keys/type/TTL |
| Schema-aware completion | Yes | Yes | Yes | Yes | No | Yes | No |
| EXPLAIN / plan | Yes | Yes | Yes | Yes | No | Yes | No |
| Rolled-back preview | Yes | Yes | Yes | — | No | — | No |
| DDL scripting | Yes | Yes | Yes | Yes | No | Yes | No |
| Chart / export | Yes | Yes | Yes | Yes | Yes | Yes | No |
Dialect Divergence
The language service tokenizes for the active connection's dialect but does not rewrite portable SQL, cross-engine work stays your responsibility. The differences that most often bite when moving a statement between the engines above:
| Operation | PostgreSQL | MySQL | SQL Server |
|---|---|---|---|
| Row limiting | LIMIT n | LIMIT n | TOP n / OFFSET FETCH |
| Concatenation | || | CONCAT() | + |
| Case-insensitive match | ILIKE | collation-dependent LIKE | collation-dependent LIKE |
| Upsert | ON CONFLICT DO UPDATE | ON DUPLICATE KEY UPDATE | MERGE |
| Identity | GENERATED ... AS IDENTITY | AUTO_INCREMENT | IDENTITY(1,1) |
| Boolean storage | BOOLEAN | TINYINT(1) | BIT |
The active tab's connection determines dialect handling, keep an eye on which connection a tab targets when several engines are open.