Keyboard Shortcuts & Multi-Database Support

Full shortcut reference, plus how the workbench holds many engines open at once and where the engines differ.

Keyboard Shortcuts

CategoryActionWindows / LinuxmacOS
ExecutionExecute QueryCtrl+Enter or F5Cmd+Enter or F5
ExecutionExecute Selected TextCtrl+Shift+EnterCmd+Shift+Enter
FileSave QueryCtrl+SCmd+S
SearchFindCtrl+FCmd+F
SearchFind and ReplaceCtrl+HCmd+H
FormattingFormat SQLCtrl+Shift+FCmd+Shift+F
EditingToggle Line CommentCtrl+/Cmd+/
EditingToggle Block CommentShift+Alt+AShift+Option+A
EditingUndoCtrl+ZCmd+Z
EditingRedoCtrl+Y or Ctrl+Shift+ZCmd+Shift+Z
EditingDuplicate LineShift+Alt+DownShift+Option+Down
EditingMove Line Up / DownAlt+Up / Alt+DownOption+Up / Option+Down
SelectionSelect AllCtrl+ACmd+A
SelectionSelect LineCtrl+LCmd+L

Saved connections and query tabs can be reached with Tab and opened with Enter, and every field of the connection form is named by its label for screen readers.

Several Engines at Once

Any number of connections can be connected at once, each with its own server-side pool, and all of them appear in the navigator, so a PostgreSQL replica, a MySQL staging instance and a Redis cache can be browsed side by side. The editor runs against one connection at a time, the one selected in the header; selecting another switches every tab to it without disconnecting the first. Pools open on first use (a connect, a query or a schema load) and close when the connection is disconnected or idle. There is no cross-connection JOIN: each statement runs against exactly one connection, so compare engines by running the statement against each and comparing the grids or the exported results.

Per-Engine Differences

CapabilityPostgreSQLMySQL/MariaDBSQL ServerOracleMongoDBSQLiteRedis
NavigatorFullFullFullFullCollections + sampled fieldsFullKey namespaces
Object searchYesYesYesYesYesYesNo
Write previewRolled-back runRolled-back runRolled-back runRolled-back runMatched documentsRolled-back runKeys written
Script definitionYesYesYesYesNoYesNo
Explain (plan tree)Yes, with AnalyzeYes, with AnalyzeYesYesYesYesNo
Several statements per runYesYesYesNoNoNoNo
CSV / TSV / JSON exportYesYesYesYesYesYesYes
Insert script exportINSERTINSERTINSERTINSERTinsertOneINSERTHSET
Script rows from the navigatorYesYesYesYesYesYesNo

Dialect Divergence

The IDE runs your SQL as written and does not translate it between engines. The differences that most often bite when moving a statement between the engines above:

OperationPostgreSQLMySQLSQL Server
Row limitingLIMIT nLIMIT nTOP n / OFFSET FETCH
Concatenation||CONCAT()+
Case-insensitive matchILIKEcollation-dependent LIKEcollation-dependent LIKE
UpsertON CONFLICT DO UPDATEON DUPLICATE KEY UPDATEMERGE
IdentityGENERATED ... AS IDENTITYAUTO_INCREMENTIDENTITY(1,1)
Boolean storageBOOLEANTINYINT(1)BIT

The connection selected in the header decides which engine runs the statement, so check it before running SQL written for another engine.