# Overview

TablePlus is a modern, native tool with elegant UI that allows you to simultaneously manage multiple databases such as MySQL, PostgreSQL, SQLite, Microsoft SQL Server and more.

![Working with data table in TablePlus](/files/-Lro7rhRCesn9vxHALdM)

## Supported databases

Currently you can use TablePlus to work with:

* PostgreSQL
* MySQL
* MariaDB
* SQLite
* Microsoft SQL Server
* Amazon Redshift
* Oracle (Only macOS)
* CockroachDB
* Snowflake (macOS and Windows)
* Cassandra
* Redis
* Vertica
* MongoDB (Beta)
* And any databases that use the same protocol with the databases listed above such as Percona, Yugabyte DB, etc.

## Download & Install

### For macOS

* **Download link**: <https://tableplus.com/release/osx/tableplus_latest>
* **Requirements**: macOS 10.11 and newer

{% hint style="info" %}
If you install the app and see the error message: "***The package is damaged***", it's probably your macOs version is not supported. TablePlus supports macOS 10.11 and newer.
{% endhint %}

### **For Windows**

* **Download link:** <https://tableplus.com/release/windows/tableplus_latest>
* **Requirements**:
  * **Windows 7** and newer
  * **.NET 4.8** or higher

{% hint style="info" %}
The TablePlus installer also includes a compatible version of .NET. It will do a quick check and install .NET if it's not already installed on your Windows machine.
{% endhint %}

### For Linux:

* **Download link**: <https://tableplus.com/linux>

### **For iOS**

* **Download link**: <https://tableplus.com/ios>
* **Requirements**: **iOS 12.0** and newer

### Download the old builds

You can find the link to download the old builds in the change log:

* **For Mac**: [https://tableplus.com/osx/changelog](https://tableplus.io/osx/changelog)
* **For Windows**: [https://tableplus.com/win/changelog](https://tableplus.io/win/changelog)

## Data Collection

TablePlus never sends or stores any of your data to our server. All database credentials are safely kept in the user’s device hard storage.

TablePlus does store customer’s email address on our server in the US for license manager only. The device identification is one-way hash and it does not contain any private information about user’s device, just a hash.&#x20;

TablePlus use AppCenter, a product from Microsoft for the crash report. Current data retention period is 90 days. However, you can turn it off from the app’s preference.

**For more information, refer to:**

* [**Privacy policy**](https://tableplus.io/privacy)
* [**License agreement**](https://tableplus.io/blog/2018/01/license-agreement.html)
* [**Terms of service**](https://tableplus.io/legal)

## TablePlus Beta (macOS Only)

TablePlus updates are released frequently and, as part of the testing process for new releases, there are beta versions of the app available at a more frequent release rate. If you want to try out the latest features and improvements before they’re officially released, you can opt in

* Open the app's preferences setting (**`⌘ + ,`**) find the General tab.
* Tick on **`Receive Beta Updates`** in the Application Section.

If you find any regressions in the beta, we’d love it if you could submit a detailed bug report. To report bugs or send feedback, please fire a new issue here:

MacOS: <https://github.com/TablePlus/TablePlus/issues>

Windows:  <https://github.com/TablePlus/TablePlus-Windows/issues>

Linux: <https://github.com/TablePlus/TablePlus-Linux/issues>

iOS: <https://github.com/TablePlus/TablePlus-iOS/issues>

{% hint style="info" %}
Remember, as with any other pre-release beta, use it at your own risk!
{% endhint %}


# Getting Started

## **1. Create a Connection**

You need to prepare your `host`, `port`, `username`, and `password` to get connected.

{% hint style="info" %}
For SQLite, you can create a connection by providing the path to database file or just double-click on the database file to open.
{% endhint %}

{% hint style="info" %}
Your **`database username`** and **`password`** are stored securely in your Keychain. We never sync any of your data to our server.
{% endhint %}

**How to connect**

* Open TablePlus app, from the welcome screen, click `Create a New Connection` at the bottom, or right-click on the connection view and choose `New`.
* Choose database type and hit `Create`
* Configure your connection using standard properties such as host, port, user credentials, etc;

![](/files/-LrybTmaJRPPbEQ6bY6U)

Or you can choose to import from URL, just copy and paste your URL. You can find and copy the URL from your server configuration.

For example, you can connect to our demo PostgreSQL database by importing this URL: (if you already have the PostgreSQL Server running locally or you can get one here with just a few clicks: <https://dbngin.com>)

```
postgresql://postgres@127.0.0.1
```

## **2. Open anything**

You can open anything using `⌘ + P`, including database, table, schema, view, function…

![](/files/-LroS40NvWftIxonrsvT)

## **3. Edit data**

From the table view, you can edit data inline by double-clicking on the data cell or using the toggle view in the right sidebar. The toggle view can be enabled using the toggle button at the top right or by pressing `Space`.

![](/files/-LroZtYpwPMsA7L2q-a0)

After editing, press `Commit` icon near the top left segment panel or use `⌘ + S` to commit the changes to the database.

## **4. Save Changes to the Database**

TablePlus does not send the queries that modify the database automatically to the server unless you confirm the changes. Therefore, after querying and editing your data from the app, you’ll need to commit the change to the database. That’s when your database actually gets modified. There are two ways to commit the changes:

* Using the commit button on the top left action control.
* Using the shortcut key: **`⌘ + S`**.

Noted: All the changes will be recorded in the history tab. TablePlus supports 3 safe mode levels to prevent human mistakes. Click on the clock icon (near edit action control) to enable it.

![](/files/-LrtQU_b89UVzjK3wcyj)

## **5. Open SQL Query Editor**

You can click on the SQL Query Editor icon near the top left, or use `⌘ + Return` (or `⌘ + E`) to open query editor. TablePlus will open the editor with the most recent script. SQL Query features.

* Auto code-completion.
* Query params: [demo](https://tableplus.com/blog/2021/04/tips-how-to-call-function-producedure-using-gui-in-tableplus.html).
* Show invisible characters.
* Multiple carets: [demo](https://tableplus.com/blog/2021/04/tips-how-to-call-function-producedure-using-gui-in-tableplus.html).

{% hint style="info" %}
"Query params" and "Show invisible characters" feature are off by default, you can click the settings button at the bottom left to turn it on.
{% endhint %}

![](/files/-Lroj-TzY-JP3NZZz1-z)

## **6. Execute Queries**

After writing your queries, press `Run All` button, or use `⌘ + Enter`, and TablePlus will execute all the SQL code in the editor.

* You can change the default button to `Run Current` from the dropdown near `Run All`, Tableplus will only run the statement under the cursor.
* If you want to split results into tabs, click on query setting on the left, there are also many other settings (font, auto suggestion…)
* Some shortcut keys (Replace Command with Control on Windows):&#x20;
  * Command + Shift + D: Split the Query Editor Horizontally.
  * Command + D: Duplicate the cursor by searching the current word.
  * Command + W: Close the current query editor.
* You can enable the Query Params by clicking the settings button at the bottom left of the Editor.

![](/files/-LrtUcUSF0cHchexAfML)

## **7. Create Tables**

When viewing the items tab in the left sidebar, right-click on the sidebar and choose `New Table`, or you can use `+ Table` button near the bottom left to create a new table.

![](/files/-Lrp4Qzq1_MNKTsJp2GQ)

After creating, press `Commit` icon near the top left segment panel or use `⌘ + S` to commit the changes to the database.

## **8. Show Data from Selected Columns**

You can show data from the selected rows by the column name. Click the `Column` button at the bottom of the workspace window and choose which columns to show.

![](/files/-LrtF_wPj1Pd09BiSy3u)

## **9. Filter Data**

To open filter, press the filter button at the bottom of the window or use `⌘ + F` Each filter contains there simple boxes:

* a dropdown list of the column names
* common conditions such as `equal`, `contain`, `IS NULL`,…
* one text box to fill the value.

You can apply multiple filters to quickly filter out the records you want to see.

Press filter button again or use shortcut key esc to turn off the filter.

![](/files/-LrtE96aL2JLlnOxC7WJ)

## **10. Import Data**

To import a CSV file to a current table:

* Choose `File > Import CSV` from the menu bar
* Right-click on the table in the left sidebar or right-click in the data content and choose `Import CSV`

![](/files/-LrtIFzcAzy47psYbpv2)

After importing, press `Command + R` to reload current workspace.

## **11. Export Data**

To export a table, right-click on the table name in the left sidebar and choose `Export Table`. Note that if you right-click on the data browser view, it will export only the current page of results, not the whole table.

The output file can be CSV, JSON or SQL.

![](/files/-LrtIP46CsqxUUxMv-gL)

Read more on [11 tips to boost your productivity with TablePlus](https://tableplus.com/blog/2018/05/11-tips-to-boost-productivity-with-tableplus.html).


# The Interface

A tour around the user interface.

{% hint style="info" %}
Tip: Hover on each button to view the tooltip and learn the shortcut keys to it. Each functionality has a set of shortcut keys.
{% endhint %}

![](/files/-LrzQQ3xJJsU8GCRIoQ3)

{% content-ref url="/pages/-LrnaReiNUtRQNEL2bn6" %}
[Menu](/gui-tools/the-interface/menu)
{% endcontent-ref %}

{% content-ref url="/pages/-LrnaUNfG\_mNv4Vul6Vy" %}
[Toolbar](/gui-tools/the-interface/toolbar)
{% endcontent-ref %}

{% content-ref url="/pages/-LrnaZ9ehQiX5w-Oejqu" %}
[Left sidebar](/gui-tools/the-interface/left-sidebar)
{% endcontent-ref %}

{% content-ref url="/pages/-Lrna\_w\_3XpRkFa5eF\_y" %}
[Right sidebar](/gui-tools/the-interface/right-sidebar)
{% endcontent-ref %}

{% content-ref url="/pages/-LrnabdkVMZHJgpz9-lu" %}
[Console Log](/gui-tools/the-interface/console-log)
{% endcontent-ref %}

{% content-ref url="/pages/-LrniaRrY7ogv5LTQexW" %}
[Query Editor](/gui-tools/the-interface/query-editor)
{% endcontent-ref %}

{% content-ref url="/pages/-LrnaeHiia-bnNzSBnBt" %}
[Multi Tabs / Workspaces / Windows](/gui-tools/the-interface/multi-tabs-workspaces-windows)
{% endcontent-ref %}


# Quick Look

## **Quick Look**

This is helpful when you need to view a data cell with special type such as JSON in a pretty format, or a BLOB column type, TablePlus will display the data in a bigger popup.

To use Quick Look:

* Right click on the data cell and choose **`Quick Look Editor`**
* Or click the middle mouse on the data cell.

![](/files/-LsNljYpH0YoVfDjpnmz)


# Menu

The native (global) menu is enabled out of the box.

![](/files/-LrzM3oJbpcyD4RHaUf5)

It contains most of the commands that affect TablePlus' UI and your interactions with data.


# Toolbar

The Toolbar contains the Action control panel, connection status bar, toggle panel, and some other utility buttons.

![](/files/-LrzPEN_6f1VqlaUt8KF)

![](/files/-LroMWN135KTGZAfN1Ph)

## Action Control

The **Action Control** section on the far left of the toolbar contains the quick access for the commit, preview, discard actions.

| Icon                                                            | Description                  |
| --------------------------------------------------------------- | ---------------------------- |
| <img src="/files/-LrnsCKqh9VfcEffYJtS" alt="" data-size="line"> | Discard changes              |
| <img src="/files/-Lrnt0EFfw7AElpOYHP4" alt="" data-size="line"> | Preview generated SQL        |
| <img src="/files/-LrnskXs7_VKtWAkrti6" alt="" data-size="line"> | Commit changes to the server |

## Safe Mode

The Safe Mode button controls whether you need TablePlus to warn you or ask for password for each query before sending it to the server.

| Safemode         | Icon                                                            | Description                                                                                |
| ---------------- | --------------------------------------------------------------- | ------------------------------------------------------------------------------------------ |
| **Silent mode**  | <img src="/files/-LroLKMAWWlGkDvzlMat" alt="" data-size="line"> | Send queries to the server without any warnings                                            |
| **Alert Mode 1** | <img src="/files/-Lro25AwIJCdp6x_FPCj" alt="" data-size="line"> | Warning before sending queries to the server                                               |
| **Alert Mode 2** | <img src="/files/-Lro28uxSHiWBANedUDO" alt="" data-size="line"> | Warning before sending queries to the server except SELECT/EXPLAIN queries                 |
| **Safe Mode 1**  | <img src="/files/-Lro2EopOyUZHG91vpk2" alt="" data-size="line"> | Prompt for the password before sending queries to the server                               |
| **Safe Mode 2**  | <img src="/files/-Lro2JwfcKTPGuQNszRN" alt="" data-size="line"> | Prompt for the password before sending queries to the server except SELECT/EXPLAIN queries |

## Refresh The Workspace

The Refresh button <img src="/files/-LroO8z0B4GixR6pV-ZL" alt="" data-size="line"> is used to reload the current workspace and update it with the latest data.

## Status Bar

A status bar shows you the a brief of the current connection status. You can click on it to view more details and reassign the connection colour.

![](/files/-LroMWN135KTGZAfN1Ph)

![](/files/-LroRbLSHhYdUNuuFs1-)

## Open Anything

Quickly find and open a database and its object. For more information, refer to [Open Anything](/gui-tools/open-anything).

![](/files/-LroS40NvWftIxonrsvT)

## Show Workspaces

The **Show Workspaces** allows you to quickly see all the opening workspaces and make a quick switch, or open a new one.

![](/files/-LroQwQ4mdCbHvMscjlK)

## User Management

Quickly open the user management panel. For more information, refer to [User Management](/gui-tools/user-management).

![](/files/-LroTWJisAfs4sbvrIlS)

{% hint style="info" %}
User management is currently supported in MySQL.
{% endhint %}

## Toggle Panels

Quickly open/close the left sidebar, right sidebar, and console log.

![](/files/-LroUDOIvT6c9ONTzr3Z)

## Customize Toolbar

You can change the layout of TablePlus’ toolbar, buttons, and colours to suit your style. If you are familiar with customizing the Safari browser window on Mac, this works the same.

![](/files/-Lrirau9_x94VrldaWE8)

In the TablePlus app, right-click on the toolbar and choose **Customize Toolbar**.

From here, you can choose which item you like to show, and drag them into the toolbar, including:

* Action control (Cancel, Preview, Commit changes)
* Safe Mode Button
* Open Anything Button
* Status Bar
* Toggle Panels
* Show Workspaces Button
* Refresh Workspace Button
* Add space/flexible space

Or you can drag the default set into the toolbar to show everything it has.


# Left sidebar

![](/files/-LrzTceQYdnueL8gSVaz)

## Quick Navigation

There's a quick navigation bar on top of the left sidebar which enable you to:

* Open the list of saved connections and make a switch
* Open the list of databases in the current connection and make a switch
* Open a new Query Editor

| **Icon**                                                        | **Description**   | **Shortcut Keys** |
| --------------------------------------------------------------- | ----------------- | ----------------- |
| <img src="/files/-LrySQ_mEhtEeWM6wuTI" alt="" data-size="line"> | Show Connections  | ⌘ + ⇧ + K         |
| <img src="/files/-Lrntpnj8wsd13ju10oZ" alt="" data-size="line"> | Show Databases    | ⌘ + K             |
| <img src="/files/-LrntylX1OfNHdT6osGc" alt="" data-size="line"> | Open Query Editor | ⌘ + Return        |

## Sidebar Items

Left sidebar give you quick access to the list of database objects: [tables](/gui-tools/working-with-table), [views](/gui-tools/database-objects/view), [functions](/gui-tools/database-objects/function), [procedures](/gui-tools/database-objects/procedure); queries [favourite](/query-editor/keyword-binding-favorite) and [history](/query-editor/query-history).

The search box enables you to search for any items listed on the left sidebar using fuzzy matching.

Find the sidebar setting from the dropdown menu at the bottom so you can choose:

* **Show/hide recent section**. The recent section on the left sidebar shows the last 5 opened items from the current database.
* **Show/hide function section**. This function section shows the functions and procedures of the current database.
* **Show/hide system schemas**: This allows you to select system schemas from the schema list at the bottom of the left sidebar. For example, you can find information\_schema, pg\_catalog, pg\_toast.

![Right sidebar](/files/-LrirVWfUPRvHqnh4Vf9)

When you have multiple databases at the same time, TablePlus will show another left sidebar with the database icon so you can quickly switch between different databases.

### **Show DB name & connection name**‌

When you open multiple databases from different connections, for better differentiate them, you can find the config button at the bottom left corner and choose to:

* Show/hide database name
* Show/hide connection name

![Right sidebar with multiple connections](/files/-LrirwaKQWr3YZQXEzyI)

### **Pin to top**

From the list of database objects on the left sidebar, you can choose to pin some items so they always be shown on the top of the list.&#x20;

* To pin, right click on the table/view/function name and choose **`Pin to top`**.
* To unpin, right click on the pinned item and choose **`Unpin from top`**.


# Right sidebar

![](/files/-LrzqO-jDtbYINLKhMqB)

Right sidebar is used to view and edit the details of the selected row. When multiple rows are selected, you can edit value in bulk. It's also very helpful when you have a table with a lot of columns and you don't want to scroll horizontally for too far.

You can also search for column using the right sidebar.

To show/hide the right sidebar, click on the right sidebar toggle button, or press **`Space`** key.

![](/files/-LroZtYpwPMsA7L2q-a0)


# Console Log

Console log will record all executed queries when turned on.

![](/files/-Ls-MBRcfcRWc-usD_BC)

To open the Console Log, click on the Toggle button near the top right of the window, or use the shortcut keys **`⌘ + ⇧ + C`.**

You can config the console log to show:

* Meta queries only
* Data queries only
* All queries, including meta queries and data queries.

This setting can be found at the bottom left of the console log.

To clear the log, click on the delete button next to the dropdown menu.

![](/files/-LrobbIm0S7zVnK1enuY)


# Query Editor

Use the editor to read and write SQL code.&#x20;

To open the Query Editor, click on the SQL button (<img src="/files/-LrntylX1OfNHdT6osGc" alt="" data-size="line">) on top of the left sidebar, or use shortcut keys **`⌘ + ⏎`** or **`⌘ + E`**

For more information, see [Editor basics](/query-editor/untitled).

![](/files/-Lroj-TzY-JP3NZZz1-z)


# Multi Tabs / Workspaces / Windows

## Multiple Tabs

When you open a database object such as table, view, function, etc, TablePlus uses a tab to show it.

When you open a new database object within the same database:

* If the current object is modified, TablePlus will pin it to the current tab and the new object will be opened in a new tab.
* If the current object is not modified, the new object will replace the current object in the same tab.
* If you want to open a new object and immediately pin it to the current tab, double click on it.
* If you want to open the new object in the new tab disregard of the current tab, right click on the object and choose **`Open in new tab`**.

When you have multiple opening tabs, especially with multiple Query Editors, to better differentiate them, you can rename the tab by right clicking on the tab and choose **`Rename Tab`**.

* To open a new empty tab, press **`⌘ + T`**
* To close a tab:
  * Right click on the tab and choose Close tab
  * Or click on the close button of the tab
  * Or select to make the tab current and press **`⌘ + W`**&#x20;
* To close all other tabs and leave the selected tab opening, right click on the tab and choose **`Close other tabs`**
* To close all tabs on the right of the selected tab, right click on the tab and choose **`Close tabs to the right`**

## Open new database

#### Open in a new workspace

When you switch to a new database, TablePlus opens it in a new workspace, tabbed in the same window by default.

To open a new database in a new workspace:

* Press **`⌘ + K`** and double click on the database name
* Or you can use **`Open Anything`** (**`⌘ + P`**, type the database name, select and press Return)

![](/files/-LrorsVOMILvn_d4peAS)

#### Open in the current workspace

To open a new database in the current workspace, press **`⌘ + K`,** right-click on the database name and select **`Open in current workspace`**. TablePlus will open it and replace the current database.

#### Open in a new window

By default, switching between database of the same connection, TablePlus only uses multiple workspaces in the same working window. To move a current workspace to a new window, navigate to menu **`Window`** > **`Move Tab to new Window`**.

## Open new connection

#### Open in a new workspace

When you switch to a new connection, TablePlus opens a new workspace, tabbed in the same window by default.

To open a new connection, press **`⌘ + ⇧ + K`**, then double click on the connect name.

#### Open in a new window

To open another connection in a new window:

* Press **`⌘ + ⇧ + K`**, right-click on the connection and select Open in new window
* Or you can open a new window by **`⌘ + N`**, then open the new connection.

To move a current workspace to a new window, navigate to menu **`Window`** > **`Move Tab to new Window`**.

![](/files/-LsHPmbUEuT0Fk5GbXLU)


# Open Anything

You can expect this feature to run as the Search Spotlight on macOS.

Click on the Search icon on the Toolbar, or use the shortcut key **`⌘ + P`** and enter a keyword, TablePlus will use fuzzy matching to suggest a list of items to open, including:

* Database
* Schema
* Table
* View
* Materialized view
* Function
* Procedure
* Queries

To open an item from the result list, double-click on the item or use the up arrow and down arrow key to select the item then hit **`Return`**.

![](/files/-LroS40NvWftIxonrsvT)


# Code Review & Safemode

{% hint style="info" %}
This is one of the most important features where it allows you to take control of the changes you have made on your data. All changes made via GUI will be pending until you actually commit them to the server, and safe mode will be more strict when asking for password to confirm your actions.

No more accidentally delet data or making changes without you being aware of.
{% endhint %}

{% content-ref url="/pages/-Lrjn24NLeXAWTvQKxlo" %}
[Code Preview](/gui-tools/code-review-and-safemode/code-preview)
{% endcontent-ref %}

{% content-ref url="/pages/-Lrjmt84Q6vOw3YAYvXW" %}
[Commit changes](/gui-tools/code-review-and-safemode/commit-changes)
{% endcontent-ref %}

{% content-ref url="/pages/-Lrjn9yMmy4dzfVHUJ2o" %}
[Discard changes](/gui-tools/code-review-and-safemode/discard-changes)
{% endcontent-ref %}

{% content-ref url="/pages/-LrjmkrDtMgJt-C4p7fU" %}
[Safe mode](/gui-tools/code-review-and-safemode/safe-mode)
{% endcontent-ref %}


# Code Preview

Except the commands executed directly via the query editor, for every change you made via the GUI that you haven't committed to the server, you can see the generated SQL commands in the Code review function.

To see it, click on the Code review button at the left side of the top bar, or use shortcut keys **`⌘ + ⇧ + P`**

![](/files/-LrtQU_b89UVzjK3wcyj)


# Commit changes

Except the commands executed directly via the query editor, for every change you made via the GUI, you have to commit the changes to the server for it to take effect. After you commit, your database actually gets modified.

To commit changes, press Commit (<img src="/files/-LrnskXs7_VKtWAkrti6" alt="" data-size="line">) button on the left toolbar or use shortcut key **`⌘ + S`**.

![](/files/-LrtRKqhSwDTNCPo1LyH)


# Discard changes

**Discard changes**

Except the commands executed directly via the query editor, for every change you made via the GUI that you haven't committed to the server, you can cancel it via the GUI.

Top cancel uncommitted changes, click on the **Discard (**<img src="/files/-LrnsCKqh9VfcEffYJtS" alt="" data-size="line">**)** button at the top left panel, or use shortcut keys **`⌘ + ⇧ + Delete`**

![](/files/-LrtSReR5OtVPjFaRqZB)


# Safe mode

There are three modes that you can decide how you’d like to be warned when you run a query:

| Safemode         | Icon                                                            | Description                                                                                |
| ---------------- | --------------------------------------------------------------- | ------------------------------------------------------------------------------------------ |
| **Silent Mode**  | <img src="/files/-LroLKMAWWlGkDvzlMat" alt="" data-size="line"> | Send queries to the server without any warnings                                            |
| **Alert Mode 1** | <img src="/files/-Lro25AwIJCdp6x_FPCj" alt="" data-size="line"> | Warning before sending queries to the server                                               |
| **Alert Mode 2** | <img src="/files/-Lro28uxSHiWBANedUDO" alt="" data-size="line"> | Warning before sending queries to the server except SELECT/EXPLAIN queries                 |
| **Safe Mode 1**  | <img src="/files/-Lro2EopOyUZHG91vpk2" alt="" data-size="line"> | Prompt for the password before sending queries to the server                               |
| **Safe Mode 2**  | <img src="/files/-Lro2JwfcKTPGuQNszRN" alt="" data-size="line"> | Prompt for the password before sending queries to the server except SELECT/EXPLAIN queries |

You can change the safe mode by pressing the lock icon on top. You might be required to enter the database password when changing the safe mode. You can also config to use your device's password/TouchID unlock the Safe Mode from the app's preferences:

* Navigate to menu **`TablePlus`** > **`Preferences...,`** or use shortcut keys **`⌘ + ,`**
* Switch to **`Crash & Security`** tab
* Tick on **`Allow the computer's password/TouchID to unlock Safemode`**

![](/files/-LroW7SCBk5sPYQ-eO76)


# Connections & Command Line (CLI)

TablePlus connects directly from your computer to your database server without making any interferences. It's end-to-end encrypted.

TablePlus never sends or stores any of your data to our server. Only you get access to your data, all database credentials are safely stored on your device's Keychain.

You need to prepare your **database credentials** including **database driver,** **host**, **port**, **username**, and **password** to get connected.

![](/files/-LrybTmaJRPPbEQ6bY6U)

## Create a connection

### **Using connection form**

1. Launch TablePlus
2. From the welcome screen, click **`Create a new connection`** near the bottom
3. Choose the database driver and click **`Create`**
4. Configure your connection using standard properties such as like host, port, user credentials, etc.

![](/files/-LrjC8jJKIWpgGDH29O6)

### **Importing Connection URL**

You can choose to import from URL, copy and paste your URL. You can find and copy the URL from your server configuration.

![](/files/-LrjBjJ-5zmQkAtayyfR)

For example, the URL for PostgreSQL will have this structure: `postgres://user:password@host:port/database`

### **SSH Tunneling**

Besides standard properties, you can configure over SSH by entering your credentials or importing an SHH private key. TablePlus has a built-in native SSH.

When you use SSH config, you need to tick on **`Use SSH key`**. TablePlus will use the **`~/.ssh/config`** when you leave the private key empty.

![](/files/-LrjCKqhgaODMN27Ri1h)

{% hint style="info" %}
If you have a problem connecting via SSH, enable the SSH debug log (navigate to the menu **`Help` > `Enable SSH Debug Log`**) then send the log to **<nick@tableplus.com>**. It will help us troubleshoot faster.
{% endhint %}

### **Connection colors**

When you create a new connection, you can assign a color to the connection. This will help differentiate the connections, production vs staging for example.

You can change the color by clicking on the connection status when you are connecting to it, or edit the connection form on the welcome screen.

### **Connection tags**

You need to assign a tag to each connection during the creation. There are 5 current tags to use:

| Tag                                                             | Description |
| --------------------------------------------------------------- | ----------- |
| <img src="/files/-Lro03EbU5xNkFru1DZo" alt="" data-size="line"> | Local       |
| <img src="/files/-Lro09Bhk-F6Ya9YwElv" alt="" data-size="line"> | Testing     |
| <img src="/files/-Lro0Gn1Q64cnqEUvUlt" alt="" data-size="line"> | Development |
| <img src="/files/-Lro0Lfcl5TwGaYaXECK" alt="" data-size="line"> | Staging     |
| <img src="/files/-Lro0TC7rPrjJaKVrGMI" alt="" data-size="line"> | Production  |

## Saved Connections

### **On startup**

Normally, when you start TablePlus, it shows the welcome screen with a list of saved connections. After connecting to a database, the connection will be saved into your favorite list on the right side of the welcome screen. Double-click on a saved connection to open it.

![Welcome screen with saved connections](/files/-Lrj498maSSWuuAmHufY)

{% hint style="info" %}
Please be noted that TablePlus doesn't sync connection credentials to the cloud, but saves it securely in your computer's Keychain. See our [Privacy Policy](https://tableplus.com/privacy).
{% endhint %}

### Edit a saved connection

To edit a saved connection in TablePlus, right-click on the connection and choose **`Edit...`**

### Restore the last session

You can config TablePlus to reopen the workspaces you were working on from the last session. To do this:

* Go to TablePlus Preferences Setting (**`⌘ + ,`**)
* From General Preferences tab, tick on the option **`Reopen closed workspaces at startup`** at the Application section.

### **Command Line (CLI or deeplink)**

#### **Open connection from Terminal**&#x20;

You have to prepare the connection URL, you can get this by right-clicking on a connection in TablePlus and choose **`Copy as URL`**.

* All values must be URL encoded
* Supported parameteres:

statusColor: color of the status bar. Ex: statusColor=007F3D

env: enviroment tag name. Ex: env=production

name: name of the connection. Ex: name=test

windowMode: the window mode (tabbed or standalone window). Ex: windowMode=tabbed, windowMode=isolated

tLSMode: TLS mode. Ex: tLSMode=0&#x20;

usePrivateKey: use SSH private key. Ex: usePrivateKey=true

safeModeLevel: Safe mode level. Ex: safeModeLevel=0

advancedSafeModeLevel: advanced safe mode level. Ex advancedSafeModeLevel=0

driverVersion: the version of driver. Ex: driverVersion=0

lazyload: enable lazy load items in all schema. Ex: lazyload=true

schema: schema name. Ex: schema=public

table or view: item name. Ex: table=comments

operation (or operator): the operation for the filter. Ex: operation=Contains

column: the column name for the filter: Ex: column=id

value: the value of the column for the filter. Ex value=Love

condition (or raw or query): if you want to filte with multiple columns or with raw query. Ex: condition=id%3D29%20OR%20id%20%3D%2028\
\
Again all values must be URL encoded

\
Examples:&#x20;

From the Terminal, run: `open -a TablePlus "url"` and hit return.\
\
`open -a TablePlus "postgresql://postgres@127.0.0.1/tools"`

**Open connection from Terminal with a query or filter (row level) :**

* With operation

`open -a TablePlus "postgresql://postgres@127.0.0.1/tool?schema=public&name=comments&column=content&operation=contains&value=test"`

* With raw query

`open -a TablePlus "postgresql://postgres@127.0.0.1/tool?schema=public&name=comments&raw=id%3D29%20OR%20id%20%3D%2028"`

## Connection Group

You can organize database connections into groups. For example, Project A, Project B, or Production Group, Staging group, etc.

### **Create a new group**

* From the welcome screen, right-click and choose **`New group...`**
* Set the group name and icon and save it.

To add a connection to a connection group, drag and drop it into the group.&#x20;

To remove a connection from the group, drag the connection out of the group.

### **Edit & delete group**

* **To edit the connection group**: Right click on the group and choose **`Edit...`**
* **To delete the connection group**: Right click on the group and choose **`Delete`**

## **Export & Import Connections**

In TablePlus, you can quickly export and import one or multiple connections using a TablePlus connection file. This can be incredibly helpful when you need to quickly share the connections between multiple devices.

### **Export connection**

You can export group name, image, and connection's information into a local file:

* Right-click on the group and choose **`Export Connections`**
  * Choose **`Export all...`** to export all saved connections, or
  * Choose **`Export this group...`** to export all connections within the selected connection group, or
  * Choose **`Export this connections...`** to export one selected connection only.
* Choose to include/exclude database passwords and server passwords in the export file.
* Set a password for the export file and hit **`Export`**.

TablePlus will export the connection information into a dump file with **`.tableplusconnection`** extension.

### **Import connection**

You can import group name, image, and connection's information from a local file:

* Right-click on the welcome screen, choose **`Import Connections...`**
* Choose the connection file, enter the password (if required)
* Hit **`Import`**

{% hint style="info" %}
If you need to sync connections between devices, it's not supported yet but we will add syncing via the private cloud (iCloud, Dropbox, Google Drive) soon.

For now, you can export connections from one device, send the connection file to the other device, and import connections.
{% endhint %}

## **Switch Connection**

When connected to a database, to show the list of connections and make a switch, click on the Connections button on the top left panel, or use the shortcut key **`⌘ + ⇧ + K`**.

## Keep connection alive

By default, TablePlus will ping the servers every 30 seconds to keep the connection active and avoid being disconnected. If you want to turn this off:

* In the Settings/Preferences dialog (**`⌘ + ,`**), go to General tab
* Untick the **`Keep connection alive`** to disable it.


# Database

## **Switch database**

To show the list of databases in the current connection and make a switch, click on the Show databases button on the top left panel, or use shortcut key ⌘ + K.

![](/files/-LrorsVOMILvn_d4peAS)

## **New database**

To create a new database in the current connection:

* Click on the Show connections button on the top left panel, or use shortcut key **`⌘ + ⇧ + K`** to show database list.
* Click on the **`+`** button
* Specify name, encoding, and collation for the new database
* Hit **`Create`**

![](/files/-LrotWkTuy_lIL9DHwdh)

## **Rename database**

{% hint style="info" %}
Only applies if the Database System supports renaming the database
{% endhint %}

To rename a database in the current connection:

* Click on the Show connections button on the top left panel, or use shortcut key **`⌘ + ⇧ + K`** to show database list.
* Right-click on the database name
* Specify a new name
* Hit **`Rename`**

![](/files/-LrourmcVbHIf2LzhxG5)

## **Drop database**

To drop a database in the current connection:

* Click on the Show connections button on the top left panel, or use shortcut key **`⌘ + ⇧ + K`** to show database list.
* Right click on the database and choose **`Drop...`**, or select the database and click **`-`** button.
* Hit **`Drop`**

![](/files/-LrovSve4EpTpibD1p01)


# Working with Table

{% content-ref url="/pages/-LrjhRSEzi5Jb7RIsRi2" %}
[Table Basics](/gui-tools/working-with-table/table)
{% endcontent-ref %}

{% content-ref url="/pages/-LrjiCrkl8QuyL5EVn3c" %}
[Row](/gui-tools/working-with-table/row)
{% endcontent-ref %}

{% content-ref url="/pages/-LrjiTKp4b8Nh9WbBz\_y" %}
[Column](/gui-tools/working-with-table/column)
{% endcontent-ref %}

{% content-ref url="/pages/-LsTQXJJVNEE4GNYe1\_3" %}
[Constraint](/gui-tools/working-with-table/constraint)
{% endcontent-ref %}

{% content-ref url="/pages/-Lrjj28MHhVQ0Vek34mX" %}
[Index](/gui-tools/working-with-table/index)
{% endcontent-ref %}

{% content-ref url="/pages/-LrjlsCzH5ckD94Wa7qO" %}
[Trigger](/gui-tools/working-with-table/trigger)
{% endcontent-ref %}


# Table Basics

## **Show table overview**

To see the overview of the current table list, click on the header "Tables" on the left sidebar, or right click on any table any choose **Overview items**.

![](/files/-Lrp08UTqlnV50kiyOgX)

## **View table data**

To view a table and its content, click on table name on the left sidebar, or use Open Anything (**`⌘ + P`**)

From table structure view, to go back to the table data view:

* Click on the **`Data`** button at the bottom
* Or use shortcut keys **`⌘ + ^ + [`**

TablePlus support paging when showing table data. By default, it shows 300 rows per page.

You can change the limit number of rows per page:

* Click on the config/setting button at the bottom of the table
* Edit and enter the new value for the Limit field
* Enter the offset value if you need
* Click **Go**

![](/files/-Lrp2l5Ps2tEixbdrW16)

## **View table structure**

To view a table structure:

* When viewing table data:
  * Click on the **Structure** tab at the bottom
  * Or use shortcut key **`⌘ + ^ + ]`**.
* Or you can right click on the table name on the left sidebar and choose **`Open structure`**.

![](/files/-Lrp2JGu8IVDI_MgvKWw)

## **Show table creation**

Currently, there are two ways to show the **CREATE TABLE** commands:

* Using the **`Definition`** button:
  * When viewing table data, click on the Structure tab at the bottom, or use shortcut key **`⌘ + ^ + ]`**. Or you can right click on the table name on the left sidebar and choose Open structure.
  * Click on the **`Definition`** button at the top right to show table creation.
* Or using the **`Dump Table`** Plugin:
  * Navigate to Plugin > Manage plugins, or use the shortcut key **`⌘ + L`**
  * Install **`Dump Table`** plugin.
  * Right click on the table, choose **`Copy Script As`** > **`CREATION`**

{% hint style="info" %}
Using the Dump Table Plugin, you also have options to **`Copy Script As:`** **`DROP`**, **`TRUNCATE`**, and **`Laravel Migration.`**
{% endhint %}

![](/files/-Lrp34mIqNfXMaKa0LXv)

## **Create table**

To create a new table from the GUI:

* Click on the **`+`**  button at the bottom of the left sidebar, or right click on the left sidebar and choose **`New`** > **`Table`**.
* Enter the table name
* Add new column by clicking on the **`+ Column`** at the bottom, or double click on the blank row.
* Specify the column's attributes: name, datatype, nullability, default.
* Specify the table's Primary Key in the **`Primary`** field, if needed
* After you finish, press **`⌘ + S`** to commit changes to the server.

![](/files/-Lrp4Qzq1_MNKTsJp2GQ)

## **Rename Table**

To rename a table:

* Open the table structure view
* Enter the new name in the name text box at the top of the window.
* Press **`⌘ + S`** to commit changes to the server.

![](/files/-LrpA_KWpISMALbf5D5G)

## **Truncate Table**

To truncate a table,&#x20;

* Right click on table name on the left sidebar and choose Truncate.&#x20;
* Press **`⌘ + S`** to commit changes to the server.

## **Delete Table**

To delete a table,&#x20;

* right click on table name on the left sidebar and choose Delete, or select the table and press Delete key.
* Press **`⌘ + S`** to commit changes to the server.

## Change Encoding

To change encoding, navigate to menu **`Connection`** > **`View Using Encoding...`** Then select the encoding that works for your table of data.


# Row

## **Insert row**

To insert a new row:

* Open the table data view
* Click on the **`+ Row`** button at the bottom or double click on the blank row, or use the shortcut key `⌘ + I` when selecting a row.
* Enter the row values
* After you finish, press **`⌘ + S`** to commit changes to the server.

![](/files/-LrpBxOGZUXrU8m13lqt)

## **Duplicate row**

To duplicate rows:

* Open the table data view.
* Select the rows and right click to choose **`Duplicate`**, or use shortcut keys **`⌘ + D` .** You can also use copy/paste (**`⌘ + C` then `⌘ + V)`**
* After you finish, press **`⌘ + S`** to commit changes to the server.

## **Edit row**

To edit a data cell, you can double click on it and edit inline, then press **`⌘ + S`** to commit changes to the server.

Or you can turn on the right sidebar to edit by pressing the Space key. This will be helpful when you do bulk edits or when you have many columns.

## **Sort by row**

With the table, you can perform a quick sort by clicking on the column title. TablePlus will sort by the values of that column:

* One click to sort by descending
* One more click to sort by ascending
* One more click to cancel sorting.

## **Quick look**

This is helpful when you need to view a data cell with special type such as JSON in a pretty format, or a BLOB column type, TablePlus will display the data in a bigger popup.

To use Quick look, right click on the data cell and choose Quick look, or select the data cell and click the middle mouse.

## **Delete row**

Select the row and press Delete key, or right click and choose Delete.

## **Copy Data**

Right click on a data cell and you can be able to:

* Copy Row
* Copy Cell Value
* Copy All Column Value
* Copy Rows as:
  * Plain text
  * JSON
  * HTML
  * Markdown table
  * CSV
  * CSV with header
  * SQL Insert statment


# Column

## **Insert column**

To insert a new column to the current table:

* Open the table structure view (**`⌘ + ^ + ]`**)
* Click on the **`+ Column`** button at the bottom, or double click on the blank row under column section, or use shortcut key **`⌘ + I`** when selecting a column.
* Specify column's attributes: name, datatype, nullability, default.
* Press **`⌘ + S`** to commit changes to the server.

![](/files/-Lrsh5jeierdV236cs6R)

## **Edit column**

This can only applies to databases that support altering column.

To edit a column

* Open the table structure view (**`⌘ + ^ + ]`**)
* Double click on column's attribute and edit inline
* Press **`⌘ + S`** to commit changes to the server.

Or you can turn on the right toggle to edit by pressing the Space key. This will be helpful when you do bulk edits.

## **Delete column**

* Open the table structure view (**`⌘ + ^ + ]`**).
* Select the column and press Delete key, or right click and choose Delete.
* Press **`⌘ + S`** to commit changes to the server.


# Constraint

## **NOT NULL Constraint**

You can specify a NOT NULL constraint on a column from the Table Structure view:

* Open the table structure view (**`⌘ + ^ + ]`**)
* Specify the value of the **`is_nullable`** field to:
  * **`YES`** to add NOT NULL constraint.
  * **`NO`** to remove the NOT NULL constraint.
* Press **`⌘ + S`** to commit changes to the server.

![](/files/-LsTTOqltm4z4bKIW91d)

## **PRIMARY KEY** Constraint

You can specify a Primary Key Constraint on a column from the Table Structure view:

* Open the table structure view (**`⌘ + ^ + ]`**)
* Specify the value in the Primary Key box:
  * Add the column name into the Primary Key box to make it a define the Primary Key Constraint on that column.
  * Delete the column name from the Primary Key box to remove the Primary Key Constraint on that column.
* Press **`⌘ + S`** to commit changes to the server.

![](/files/-LsTVZHK7ICUzSlnNt4f)

## FOREIGN KEY **constraint**

You can specify a Foreign Key Constraint on a column from the Table Structure view:

* Open the table structure view (**`⌘ + ^ + ]`**)
* Click on the **`foreign_key`** field and choose **`Create a foreign key on column`**
* From the popup, specify the foreign relationship.
* Press **`⌘ + S`** to commit changes to the server.

![](/files/-LsTWtkpXXLoL7kq7Arw)

## DEFAULT Constraint

You can specify a default value for a column from the Table Structure view:

* Open the table structure view (**`⌘ + ^ + ]`**)
* Specify the default value in the **`column_default`** field. It's **`NULL`** by default.
* Press **`⌘ + S`** to commit changes to the server.


# Index

## **Create index**

You can find the index manager from the Table Structure view. To create a new index:

* Open the table structure view (**`⌘ + ^ + ]`**)
* Click on the **`+ Index`** button at the bottom, or double click on the blank row under the index section, or use shortcut key **`⌘ + I`** when selecting an index.
* Press **`⌘ + S`** to commit changes to the server.

![](/files/-Lrt3xy_lWiflWr1UBjl)

## **Edit index**

To edit an index:

* Open the table structure view (**`⌘ + ^ + ]`**)
* Double click on index's attribute and edit inline
* Press **`⌘ + S`** to commit changes to the server.

## **Delete index**

* Open the table structure view (**`⌘ + ^ + ]`**)
* Select the index and press Delete key, or right click and choose Delete.
* Press **`⌘ + S`** to commit changes to the server.


# Trigger

## **Create trigger**

* Open the table structure view (**`⌘ + ^ + ]`**).
* Click on the **`Triggers`** button near the top right of the structure view.
* Click on the **`+ Trigger`** button or double click on the blank row.
* Specify the trigger's attributes and write the trigger statement.
* Press **`⌘ + S`** to commit changes to the server.

![](/files/-Lrt5AD9ZpDKIeuiGwfN)

## **Edit trigger**

* Open the table structure view (**`⌘ + ^ + ]`**)
* Click on the **`Triggers`** button near the top right to see all existing triggers.
* Double click on trigger's attribute and edit inline.
* Press **`⌘ + S`** to commit changes to the server.

## **Delete trigger**

* Open the table structure view (**`⌘ + ^ + ]`**).
* Click on the **`Triggers`** button near the top right to see all existing triggers.
* Select the trigger and press Delete key, or right click and choose Delete.
* Press **`⌘ + S`** to commit changes to the server.


# Filter

The advanced filter helps you quickly filter out data from a table. It saves you time writing long & complex queries.

TablePlus generates the SELECT queries with the WHERE conditions defined by the filters to execute and return the results.

## **Row filters**

Open the data filter by clicking on the **`Filters`** button at the bottom, or use shortcut key **`⌘ + F`**.

* **To apply a single filter**, click on the **`Apply`** button on the right of that filter, or you can select that filter and press **`Return`** key.
* **To duplicate a filter**, click on the **`+`** button on the right of that filter, or you can select it and use shortcut key **`⌘ + I`**.
* **To remove a filter**, click on the **`-`** button on the right of that filter, or you can select it and use shortcut keys **`⌘ + ⇧ + I`**.
* **To apply multiple filters**, tick the checkbox on the left to select, and click Apply all or use shortcut key **`⌘ + Return`** to apply the selected filters.
* **To reload the table content without filtering**, click the **`Unset`** button
* **To show the generated SQL query**, select the filters and click on the SQL button.
* **To exit the filters**, press **`ESC`** key, or click on the **`Filters`** button at the bottom of the table.

![](/files/-LrtE96aL2JLlnOxC7WJ)

{% hint style="info" %}
You can see the Apply button of each filter to know the status of the current data table. If the button is **`Apply`**, it's not filtered. If the button is **`Applied`**, the table is being filtered by it.
{% endhint %}

To open a quick filter by a column, right click on the column title and choose **`Filter with column`**

A quick filter by value can also be opened by right clicking on a data cell and choose **`Quick filter`**, or clicking on foreign key referencing arrow in a data cell.

### Customize default filter

There are some setting options for the row filters that you can find by clicking on the config/setting button right below the filters:

* Change default filter column to:
  * Raw SQL
  * Primary key (if exist)
  * Any column
* Change default filter operator to:
  * **`=`**
  * **`Contains`**
* Change the default filter state to:
  * Restore the last filter state
  * Always show
  * Always hide

## **Column filter**

The column filter is used to show only some selected columns from the current table.

To use the column filter:

* Click on the Column button at the bottom or use the shortcut key ⌘ + Option + F.
* Select the columns you want to see, and hit Apply.

To go back to the full table view, open the column filter, click on Clear button, then Apply.

![](/files/-LrtF_wPj1Pd09BiSy3u)


# Database Objects


# Function

## **Create function**

To create a new function:

* Right click on the left sidebar and choose **`New`** > **`Function/Procedure`**
* Write the SQL command.
* After you finish, press **`⌘ + S`** to commit changes to the server.

![](/files/-Lrsz9Any48EcEpJWPj8)

## **Edit function**

To edit an existing function:

* Click on the function name on the left sidebar to view the function
* Edit the SQL code
* Press **`⌘ + S`** to commit changes to the server.

## **Delete Function**

To delete a function, right click on the function name on the left sidebar and choose **`Delete`**, or select the function and press Delete key.


# Procedure

## **Create** Procedure

To create a new procedure:

* Right click on the left sidebar and choose **`New`** > **`Function/Procedure`**. Or you can also click on the dropdown menu at the bottom of the left sidebar and choose **`New Function/Procedure`**
* Write the SQL command.
* After you finish, press **`⌘ + S`** to commit changes to the server.

![](/files/-Lrt1KXqpHzYVzS7XI4k)

## **Edit** Procedure

To edit an existing procedure:

* Click on the function name on the left sidebar to view the procedure
* Edit the SQL code
* Press **`⌘ + S`** to commit changes to the server.

## **Delete** Procedure

To delete a procedure, right click on the procedure name on the left sidebar and choose **`Delete`**, or select the procedure and press Delete key.


# View

## **Create view**

To create a new view:

* Right click on the left sidebar and choose **`New`** > **`View`**.
* Name the view and write the SQL command.
* After you finish, press **`⌘ + S`** to commit changes to the server.

![](/files/-Lrt283efsdRAvaxd61G)

## **Edit view**

To edit an existing view:

* Select to open the view from the left sidebar
* Switch to the structure tab by clicking on the **`Structure`** button at the bottom, or use shortcut key **`⌘ + ^ + ]`**.
* Edit the SQL code of the view.
* After you finish, press **`⌘ + S`** to commit changes to the server.

## **Delete View**

To delete a view, right click on view name on the left sidebar and choose **`Delete`**, or select the view and press **Delete** key.


# Import & Export

## **Import Data**

**To import data from a CSV file to a table**:

* Navigate to **`File`** > **`Import`** > **`From CSV...`**
* Or right click on the table on the left sidebar and choose **`Import`** > **`From CSV...`**

![](/files/-LrtIFzcAzy47psYbpv2)

{% hint style="info" %}
You can import a CSV file and choose to create a new table if it doesn't exist.
{% endhint %}

**To import data from a SQL dump file**:

* Navigate to **`File`** > **`Import`** > **`From SQL Dump...`**
* Or right click on the left sidebar and choose **Import** > **`From SQL Dump...`**

![](/files/-LrtILCS4Xd154YIQQHt)

## **Export Data**

You can export data from the current database to a CSV, JSON, or SQL file.

* Select table(s), navigate to **`File`** > **`Export`**
* Or select table(s), right click and choose **`Export...`**
* Specify the file output and click **`Export...`** button so save it on your disk.

![](/files/-LrtIP46CsqxUUxMv-gL)


# Backup & Restore

## **Backup Database**

You can backup your data into a dump file to save on your hard drive:

* If you are in the welcome screen, click on the **`Backup`** button
* If you are connected to the database, navigate menu **`File`** > **`Backup...`**
* Then choose the **connection**, **database**, and add options if you need them, and hit **`Backup`**.
* Select destination folder and **`Start Backup`**.

![](/files/-LrtJCPcBZ0VGvywayBG)

## **Restore Database**

You can restore the database from a backup file:

* If you are in the welcome screen, click on the **`Restore`** button.
* If you are connected to the connection, navigate the the menu **`File`** > **`Restore...`**
* Then choose the connection, database, and add options if you need, and hit **`Restore`**
* Select the backup file from your hard drive, and **`Start Restore.`**

![](/files/-LrtJGHecC-AKSVFY98A)


# User Management

From the workspace, navigate to menu **`Connection`** > **`User Management…`**, or you can click on the **`User Management`** button at the toolbar.

If the **`User Management`** button is not on the toolbar, right click on the toolbar and choose **`Customize Toolbar...`** and add it in.

![](/files/-LroTWJisAfs4sbvrIlS)

{% hint style="info" %}
User Management feature is currently available for MySQL only.
{% endhint %}

## Create a new user via GUI

* Open the User Management dialog
* Use the **`+`** button at the bottom left to create a new user.
* Input the username and password for the new user you need.

### Grant privileges to new user

If you want to grant global privileges to the new user, switch to the Global Privileges tab and configure.

The new user will have certain privileges for all the databases. If you check and grant all privileges from this setting, beware that the new user will have the same power as the default root user. You probably want to do that to a Backup root user account.

In most cases, you will be granting privileges to the new users based on some specific databases that account should have access to, then use the Database Privileges tab to configure.

Select the database and grant the corresponding privileges to the new user.

### Set resource limits

An addition setting for the new user is that you can define the resource limits. This includes:

* **Max Updates:** The number of updates the account can execute within one hour.
* **Max Connections:** The number of times the account can connect to the server within an hour.
* **Max Questions:** The number of queries the account can execute within one hour.

After that, click **`Apply`** to finish creating the new user.

## Update the privileges of a current user

From the User Management dialog, TablePlus lists all current users of the database on the left side. You can select any user to view the current privileges and make changes if needed.

If you want to remove all of the rights assigned to the selected user account, you can go back to edit, uncheck the privileges and then save the changes.

To delete a user, select the user and hit **`-`** button near the bottom left then save.


# Metrics board

Build a simple metrics report in less than 5 minutes.

## **0. Open the Metrics Board**

Click the Metrics Board button on the toolbar to open the Metrics Board.\ <br>

<figure><img src="/files/ej6kpiDYHDfGclecjXtF" alt=""><figcaption><p>Open Metrics Board</p></figcaption></figure>

Metrics board settings:

<figure><img src="/files/Q4j9FMU8Mu4Ervpts4jR" alt=""><figcaption><p>metrics board settings</p></figcaption></figure>

## 1. Create a simple bar/line chart

You can add a bar chart or a line chart by click the + button on the toolbar or using your right mouse click.

<figure><img src="/files/kr1JI4EPBde9wv9M7XYM" alt=""><figcaption><p>simple bar chart</p></figcaption></figure>

* Click the object to show the settings.
* Enter the SQL Query, Ex: SELECT 2 as a;
* Config the refresh rate:\
  \- After xx seconds: The chart will be reloaded after xx seconds.\
  \- Refresh on event: The chart will be reloaded on an event (which is sent from an input field).\
  \- Do not refresh: The chart will not be reloaded, you can reload it manually by click the refresh button at the bottom left.

## 2. Create a data table view

The data view config is similar to charts

<figure><img src="/files/HwtHqb93H58R0jDsqBN9" alt=""><figcaption></figcaption></figure>

## 3. Create an input field

Before creating an input field, you must create a chart or a table data view, which has query parameters and the refresh rate: Refresh on Event.

<figure><img src="/files/2SzDtjGdWh8X1wdBNKLP" alt=""><figcaption><p>data view with a query parameter</p></figcaption></figure>

Create an input field

<figure><img src="/files/dDR7Mn7NKkkVqbq3q3NR" alt=""><figcaption><p>input field</p></figcaption></figure>

* You must config the name of the variable.
* You must create a connection to the object.
* The object must have the refresh rate: Refresh on Event.


# Editor Basics

## **Open SQL Query Editor**

To open the query editor, click on the query editor button on top of the left panel, or use the shortcut key **`⌘ + Return`**, or **`⌘ + E`**.

## **Execute queries**

To execute a query from the Query Editor, select the query and click on the Run Current button, or use shortcut key **`⌘ + Return`**.

TablePlus also supports writing and executing multiple queries, you’ll need to separate them with a semicolon.

To execute multiple queries, select them in the Query Editor and click on the dropdown next to Run Current button, choose Run All, or use the shortcut key **`⌘ + ⇧ + Return`**.

You can change the default Execute button from Run Current to Run All from the same dropdown.

![](/files/-LrtUcUSF0cHchexAfML)

## **Cancel Queries**

When executing a long running queries and you need to stop it midway through,  you can do it via the process list:

* Click **`Cancel`** button on the Query Editor
* Or navigate to menu **`Connection`** > **`Process List...`**
* Or use the shortcut keys **`⌘ + .`**&#x20;

From the Process List, you can see all the running queries, select the query and click Kill to cancel it.

![](/files/-LsXnQQKbT2RjfWbamNL)

## **Export queries**

To export a queries from the Query Editor, click on the dropdown menu next the the Run button and choose **`Save SQL as...`**


# Multiple Carets

We have brought the multiple selection experience from your favorite Code Editor to TablePlus’ Query Editor. And it’s available on the latest official build of macOS version.

Here is the sneak peek of the multiple cursors:

### **Add cursors at arbitrary positions**

To add an addtional cursor at a random place, select a position with your mouse/touchpad and use **`⌘ + Click`**.

![Multiple cursors in TablePlus](https://tableplus.com/assets/images/multi-cursors/select-random.gif)

### **Add cursors to the next line**

To add additional cursors above or below the current position use: **`⌃ + ⇧ + ↑`** or **`⌃ + ⇧ + ↓`**

![Multiple cursors in TablePlus](https://tableplus.com/assets/images/multi-cursors/up-down.gif)

### **Select next instances**

To select the next instance one by one, use **`⌘ + D`**.

* When your selection is a string, highlight the string and press **`⌘ + D`**.
* When your selection is a word, you can just put the cursor at the word and press **`⌘ + D`** without having to highlight the entire word first.

![Multiple cursors in TablePlus](https://tableplus.com/assets/images/multi-cursors/select-one-by-one.gif)

### **Select all instances**

If you want to add additional cursors to select all instances of the current selection, use **`⌘ + ⌃ + G`**.

![Multiple cursors in TablePlus](https://tableplus.com/assets/images/multi-cursors/multiple-selection.gif)

### **Escape multi cursors**

To escape the multi-line selection, press **`Esc`**&#x6B;ey.


# Query Favorite & Keyword Binding

There are some queries you want to reuse in different contexts or with different objects quite frequently. You can add it to favorite and assign a keyword for reference and call it quickly using that keyword later.

![](/files/-Lru25T4UR0_Fz1vBoZD)

## **New favorite query**

**To add a new favorite query:**

* Right click on the **Favorite** section on the left sidebar.
* Choose **`New`** > **`File...`**
* From the popup editor window, name the query and its binding keyword
* Press **`⌘ + S`** to save the changes and then close the window.

**To add a query to favorite from the Editor or from the History:**

* Select the query from the editor (you can also choose from **History** tab)
* Right-click and choose **`Add to favorite`**
* From the popup editor window, name the query and its binding keyword
* Press **`⌘ + S`** to save the changes and then close the window.

Later, when you want to use a favorite query, type the assigned keyword and TablePlus will insert that query into the editor.

## **Use a favorite query**

**To use a query from Favorite from the Editor,** type the assigned keyword and hit Enter, the query will be inserted.

Or you can find the query in the Favorite and choose:

* **`Run`** to execute the query in a new tab
* **`Copy`** to copy the query to the clipboard, you can also select it and use shortcut key **`⌘ + C`** then paste it to the Query Editor.
* **`Import...`** to use the favorite query via the SQL Import Wizard.
* **`Open in anew tab`** to open Query Editor in a new tab and insert the query into it.
* **`Insert to SQL Editor`** to insert the query into the current Query Editor.

To open a favorite query in a separate SQL Viewer and edit its code, name, and keyword, right click on the query and choose **`Edit/Rename`**. When the edit is done, press **`⌘ + S`** to save it.

{% hint style="info" %}
To avoid auto saving queries while editing it in the Query Editor, go to Preferences (Cmd + ,) and unselect the **`Auto save queries while editing`** option in the General tab.&#x20;

You can also change this via the dropdown menu at the bottom of the left sidebar
{% endhint %}

## **Delete favorite query**

**To delete a query from Favorite**, right click on the query and choose **`Delete`**

## **Show query file location**&#x20;

**To see the location of the SQL file that contains query**, right click on the query and choose **`Show in Finder`**

## Favorite query folder

Favorite queries can be grouped into folders.

**To create a new favorite folder**, you can either:

* Right click on the Favorite section and choose **`New`** > **`Folder...`**
* Or right click on the Favorite section and choose **`New`** > **`Add Folder to Favorites...`**, then select the query folder on your computer to import into Favorite.

**To add a favorite query into a folder**, drag and drop the query to the folder you want.

**To rename a favorite folder**, right click on the folder and choose **`Edit/Rename`**

**To delete a favorite folder**, right click on the folder and choose **`Delete`**

## Customize Favorite

By default, when double click on the favorite query, TablePlus runs the query. You can change this default behaviour using the dropdown menu at the bottom of the left sidebar.&#x20;

If you enable **`Double click to Insert Favorite`**, when you double on a favorite query, TablePlus insert it to the current tab of Query Editor instead.

![](/files/-Ls2kv1-DUDCQ98v3w8c)

You can select/unselect **`Auto save Favorite`** to enable/disable autosave while editing favorite queries


# Query History

All queries submitted via the Query Editor will be logged in the History tab on the left sidebar.

![](/files/-LrtdiWpM1EJB3911dNO)

## **Reuse a query from History**

&#x20;To use a query from the history:

* Double click on the query to insert in into the current Query Editor.
* Right click on the query in the History and choose:
  * **`Copy`** to copy the query to the clipboard
  * **`Run`** to execute the query in a new tab
  * **`Open in anew tab`** to open Query Editor in a new tab and insert the query into it.
  * **`Insert to SQL Editor`** to insert the query into the current Query Editor.

## **Delete query**

**To delete a query from History**, right click on the query and choose **`Delete`**

**To clear all query history**, right click on a query and choose **`Clear all history`**

## **Save to Favorite**

**To save a query from History to Favorite**:

* Right click on the query and choose **`Add to favorite`**
* Name the query and assign the bending keyword
* Press **`⌘ + S`** to save, then close the window.

## **Find the query location**

**To see the location of the SQL file that contains query**, right click on the query and choose `Show in Finder`


# Streaming Results & Async Loading

## **Streaming results and async loading**

When you execute a long-running query, TablePlus will not wait until the results fully loaded to show them, but to start streaming the results as it loads, immediately right after you execute the query.

Loading the results is also a background task which doesn't block the UI. So it allows you to work on other tasks while waiting for it to be loaded.

![](/files/-LrtYOXqtBfYu9znj27u)


# Autocomplete

TablePlus suggests as you type. Objects to be suggested includes databases, tables, keywords, columns.

You can change the Auto Complete options by clicking on the config/setting button at the bottom left of the editor and choose Autocomplete options. Select/unselect to include/exclude in the suggestion:

* Tables
* Keywords
* Auto prefix schemas
* Auto uppercase keywords. You can also enable/disable this option via the app's preferences (**`⌘ + ,`**) at the General tab.

![](/files/-LruEohKk_ebdYMxxvWa)


# Split Panes

## **Split panes**

You can split the current SQL Query Editor into many different editors and they work separately.

To split pane, right click on the current editor and choose **`Split pane horizontally`**, or use the shortcut key **`⌘ + ⇧ + D`**.

![](/files/-LrtV_ehPk6Eas8Nisn0)


# Split Results into Tabs

When you have more than one query to run at the same time from the same SQL Editor, this feature will create multiple different tabs to display each result set separately. TablePlus currently supports up to 100 result tabs.

This option is enabled by default but if you need to change it:

* Clicking on the config/setting button at the bottom left of the Query Editor
* Select/unselect **`Split results into Tabs (max 100)`** to enable/disable it.

![](/files/-LrtUcUSF0cHchexAfML)


# Working With Query Results

## **Edit query results**

You can double click on the results' data cell to edit inline, or use the right sidebar.

![](/files/-Lrt_cYmoHaS0VGATRZ2)

## **Export query results**

After TablePlus returns the results successfully, you can export the results by clicking on the **`Export...`** button at the bottom, or right clicking on the results table and choose **`Export result...`**

The file output can be chosen from CSV, JSON, and SQL file.

![](/files/-LrtZ1RXgT7-pQz1MIRH)


# Format query (beautify/minify/uglify)

In TablePlus, you can reformat the query to make it more readable using either the built-in Beautify feature, or install the SQL Formatter Plugin.

## **Beautify**

You can reformat the queries in SQL query editor:

* Select the queries in the Query Editor.
* Click **Beautify** or use shortcut key **`⌘ + I`** to beautify the queries.
* Click the dropdown next to **Beautify** button and choose **Uglify**, or use shortcut key **`⌘ + ⇧ + I`** to uglify the queries.

![](/files/-LruAcf85juooMrpk78i)

## **SQL Formatter Plugin**

This plugin helps reformat the SQL statements.

To install it:

* Navigate to menu **Plugin** > **Manage Plugins...**, or press **`⌘ + L`**
* Select **SQL Formatter Plugin** and install

To use it:

* Select the SQL statements
* Navigate to menu **`Plugin`** > **`SQL Format`**, or press **`⌃ + I`**


# Query Parameters

TablePlus supports adding query parameters.\
\
**1. In Comment**

You can use the comments to tell TablePlus to draw a chart, for example:\
\
\-- TablePlus BarChart x: a, y: b\
SELECT 1 as a, 2 as b;

\
This query will draw a chart base on the comment instructions. You don't need to enable it, this feature is always on by default.\
\
**2. In Queries**

By default, TablePlus disables this feature. You can change the query parameter options by clicking on the config/setting button at the bottom left of the editor and choose Query params options:

* Select/unselect **`Enable query params`** to enable/disable query parameters.
* Change query param Regex between 4 variables:
  * **`:[\w.]`**
  * **`%[\w.]+%`**
  * **`\?`**
  * **`\$\{[\w.]+\}`**

![](/files/-Lro-2JXIygh6Qac0rs2)


# Customize Query Editor

## **Editor Font Size**

You can change the Font Size of the editor by:

* Clicking on the config/setting button at the bottom left of the Query Editor
* Choose **Font Size** options.

You can also configure the Editor Font Size via the app's preferences (**`⌘ + ,`**) at the **`Fonts & Colors`** tab.

## **Highlight current query**

By default, TablePlus highlights the current query where the cursor is pointing at. You can change this option by:

* Clicking on the config/setting button at the bottom left of the Query Editor
* Select/Unselect **`Highlight Current Query`** to enable/disable it.

## **Raise Notice notifications**

By default, TablePlus sends notifications for the RAISE NOTICE commands in PostgreSQL. You can change this option by:

* Clicking on the config/setting button at the bottom left of the Query Editor
* Select/Unselect **`Enable Raise Notice notifications`** to enable/disable it.

## **Restore recent queries**

If enabled, TablePlus restore the queries from the precious session when you open the Query Editor. You can change this option by:

* Clicking on the config/setting button at the bottom left of the Query Editor
* Select/Unselect **`Restore recent queries`** to enable/disable it.

## **Return on error**

If enabled, TablePlus will stop on the error command when running multiple queries. If it's turned off, TablePlus will ignore the error and carry on until all the queries are finished.

You can change this option by:

* Clicking on the config/setting button at the bottom left of the Query Editor
* Select/Unselect **`Return on error`** to enable/disable it.

For more customization, visit the app's preferences setting (**`⌘ + ,`**).


# General

The General preferences contain settings that affect the behaviour of various aspects of TablePlus.

To open the general preferences panel:

* Go to menu **`TablePlus`** > **`Preferences...`**
* Or use shortcut key **`⌘ + ,`**

General preferences is the default tab.

{% content-ref url="/pages/-LrjSPY0zzT0TgkiUPD3" %}
[Application](/preferences/general/application)
{% endcontent-ref %}

{% content-ref url="/pages/-LrjT7SR0OZ4ZF42VOjx" %}
[Table Data](/preferences/general/table-data)
{% endcontent-ref %}

{% content-ref url="/pages/-LrjTM3okrzdqw4oBAl5" %}
[SQL Editor](/preferences/general/sql-editor)
{% endcontent-ref %}

{% content-ref url="/pages/-LrjTPTPcaKY8zDxDOU9" %}
[CSV File](/preferences/general/csv-file)
{% endcontent-ref %}

{% content-ref url="/pages/-LrjTLR08ur0AjGq7lQg" %}
[Connections](/preferences/general/connections)
{% endcontent-ref %}


# Application

## **Loading Wallpaper**

By default, TablePlus uses an illustration as loading wallpaper, you can disable it and keep the loading screen blank.

* In the Settings/Preferences dialog (**`⌘ + ,`**), go to General tab
* Tick/untick the `**Use loading wallpaper**` to enable/disable it.

## **Beta updates**

TablePlus updates are released frequently and, as part of the testing process for new releases, there are often beta versions of the app available. If you want to try out the latest features and improvements before they’re released you can opt in here.

* In the Settings/Preferences dialog (**`⌘ + ,`**), go to General tab
* Tick/untick the **Receive Beta Updates** to enable/disable it.

If you find any regressions in the beta, we’d love it if you could submit a detailed bug report. To report bugs or send feedback, please fire a new issue here: <https://github.com/TablePlus/TablePlus/issues>.

{% hint style="info" %}
Remember, as with any other pre-release beta, use it at your own risk!
{% endhint %}

## **Auto update**

You can turn off auto update and stop sending update notifications.

* In the Settings/Preferences dialog (**`⌘ + ,`**), go to General tab
* Tick/untick the **Turn off auto update and update notifications** to enable/disable it.

## **Reopen workspace at startup**

You can choose whether TablePlus will resume where you left off, or start a fresh workspace.

* In the Settings/Preferences dialog (**`⌘ + ,`**), go to General tab
* Tick/untick the **Reopen closed workspaces at startup** to enable/disable it.


# Table Data

## **Auto hide table scrollers**

When enabled, the table scrollers will be hidden when not in use instead of showing all the time.

* In the Settings/Preferences dialog (**`⌘ + ,`**), go to General tab
* Tick/untick the **`Auto hide table scrollers`** to enable/disable it.

## **Alternating row background**

By default, TablePlus displays the alternating colours so that you can easily distinguish different data rows. You can deselect this option to use them same colour for every row.

* In the Settings/Preferences dialog (**`⌘ + ,`**), go to General tab
* Tick/untick the **`Alternating row background colors`** to enable/disable it.

## **Estimate count**

It's recommended to be turned on for better performance. When you turn it off, TablePlus might take longer to return the query results.

* In the Settings/Preferences dialog (**`⌘ + ,`**), go to General tab
* Tick/untick the **`Estimate count`** to enable/disable it.
* Set the limit of row numbers when TablePlus starts estimating count.


# SQL Editor

## **Auto save queries while editing**

* In the Settings/Preferences dialog (**`⌘ + ,`**), go to General tab
* Tick/untick the **`Auto save queries while editing`** to enable/disable it.

## **Auto UPPERCASE keywords**

When using code completion, TablePlus auto formats into uppercase for the suggested keywords.

* In the Settings/Preferences dialog (**`⌘ + ,`**), go to General tab
* Tick/untick the **`Auto UPPERCASE keywords in auto-complete`** to enable/disable it.
* You can choose whether to use tab or enter to auto-complete the keywords from the suggestion.


# CSV File

This is the default options for CSV file

In the Settings/Preferences dialog (**`⌘ + ,`**), go to General tab

### **Delimiter**

Choose from Tab, `,`, or `;`

### **Swap**

Choose from `"`, `'`, Space, or Quote if needed

### **Line break**

Choose from `\\n`, `\\r\\n`, or `\\r`

### **Decimal**

Choose from `.` or `,`


# Connections

## Time out limit

You can set a time out limit for queries so TablePlus will auto kill the queries when it doesn't receive any responses after a relatively long waiting period.

* In the Settings/Preferences dialog (**`⌘ + ,`**), go to General tab
* Set the time out limit at the Query time out box. Default is 300s.

## Keep connection alive

If enabled, TablePlus will ping the servers every 30 seconds to keep the connection active and avoid being disconnected.

* In the Settings/Preferences dialog (**`⌘ + ,`**), go to General tab
* Tick/untick the **`Keep connection alive`** to enable/disable it.


# Fonts & Colors

## Theme

This allows you to switch between Dark Mode and Light Mode, or switch it automatically depending on your system’s display preference.

* In the Settings/Preferences dialog (**`⌘ + ,`**), go to **`Fonts & Colors`** tab
* Change theme by selecting from Light, Dark, or make it auto switch based on the system preferences.

## SQL Editor

You can change font and font size of the text used in the SQL Editor. Font size can also be defined directly in the SQL Editor. You can find the setting button at the bottom left of the SQL Editor and choose Font Size.

* In the Settings/Preferences dialog (**`⌘ + ,`**), go to **`Fonts & Colors`** tab

You can customize the colour of each syntax element, including:

* Comment
* Number
* Single quote string
* Double quote string
* Backtick quote string
* Bracket quote string
* Reserved keyword
* Current query
* Selected background
* Error highlight
* Others

## Data Table

You can change font, font size, and padding of the text in Data Table, and customize the color of:

* Soft deleted row
* Modified value
* New row

In the Settings/Preferences dialog (**`⌘ + ,`**), go to **Fonts & Colors** tab


# Crash & Security

## Safe Mode

If Safe Mode is enabled, TablePlus will require database's password every time you send a query to the server. This setting allows you to use your device's password or TouchID to unlock Safe Mode.

* In the Settings/Preferences dialog (**`⌘ + ,`**), go to **Crash & Security** tab
* Tick/untick the **`Allow the computer's password/TouchID to unlock Safemode`** to enable/disable it.

## Crash Report

TablePlus uses AppCenter by Microsoft for collecting crash report to improve the stability of the app. All data is collected anonymously and cannot be used to identify you. Learn more about this by reading our privacy statement.

* In the Settings/Preferences dialog (**`⌘ + ,`**), go to **Crash & Security** tab
* Tick/untick the **`Disable the Crash Report`** to disable/enable it.


# Keymap

This contains the key mapping preferences that you can customize. You can click on each key to set the new shortcut, or clear to reset to the default setting.

## **Navigate**

In the **Settings/Preferences** dialog (**`⌘ + ,`**), go to **`Keymap`** tab.

Click on a shortcut value and type to enter a new value key mapping:

* Select Next Pane
* Select Previous Pane
* Select Next Tab
* Select Next Workspace
* Select Previous Workspace

## SQL Editor

In the **Settings/Preferences** dialog (**`⌘ + ,`**), go to **`Keymap`** tab

Click on a shortcut value and type to enter a new value key mapping.

* Toggle Line Comment
* Toggle Block Comment
* Increase Font Size
* Decrease Font Size


# Plugin

The Plugin feature is still under development.

In order to keep the app as simple and clean as possible, TablePlus was designed to only focus on the core features that are most important. For the higher needs, users can vastly extend and customize TablePlus by installing a plugin written by others or write one themselves in Javascript.

Here are some available plugins:

## **SQL Formatter Plugin**

This plugin helps reformat the SQL statements.

To install it:

* Navigate to menu **`Plugin`** > **`Manage Plugins...`**, or press **`⌘ + L`**
* Select **`SQL Formatter Plugin`** and install

To use it:

* Select the SQL statements
* Navigate to menu **`Plugin`** > **`SQL Format`**, or press **`⌃ + I`**

## **Dump Table**

This plugin helps copy creation for tables in MySQL, PostgreSQL, SQLite...

To install:

* Navigate to menu **`Plugin`** > **`Manage Plugins...`**, or press **`⌘ + L`**
* Select **`Dump Table`** and install

To use it:

* Right click on the table name on the left sidebar
* Choose **`Copy Script As`**:
  * CREATION
  * DROP
  * TRUNCATE
  * Laravel Migration

## **Open URL**

This plugin helps you open an URL/email from the data cell.

To install:

* Navigate to menu **`Plugin`** > **`Manage Plugins...`**, or press **`⌘ + L`**
* Select **`Open URL`** and install


# DBngin

DBngin is an all-in-one database version management tool. It helps you set up a local database server of any version with the ease of a click. Currently it supports:

* **MySQL:**
  * MySQL 8.0.12
  * MySQL 5.7.23
* **PostgreSQL**:
  * PostgreSQL 11.0
  * PostgreSQL 10.5
  * PostgreSQL 9.5.0
* **Redis**:
  * Redis 5.0.0
  * Redis 4.0.11
  * Redis 3.2.12

![](/files/-Lry8dnKy1MY3szb11_S)

Download DBngin here: <https://dbngin.com/>


# Shortcut Keys

The list of shortcut keys and how to use them in TablePlus

| Shortcut Key               | Description                                       | Scope                           |
| -------------------------- | ------------------------------------------------- | ------------------------------- |
| ⌘ + N                      | Open a new connection                             | Global                          |
| ⌘ + ,                      | Open Preference                                   | Global                          |
| ⌘ + Q                      | Quit app                                          | Global                          |
| ⌘ + ⇧ + O                  | New SQL Viewer                                    | Global                          |
| ⌘ + W                      | Close a tab/window                                | Workspace                       |
| ⌘ + S                      | Commit the changes                                | Workspace                       |
| ⌘ + ⇧ + P                  | Preview the changes                               | Workspace                       |
| ⌘ + ⇧ + Delete             | Discard the changes                               | Workspace                       |
| ⌘ + T                      | Open a new tab                                    | Workspace                       |
| ⌘ + L                      | Open plugin manager                               | Workspace                       |
| ⌘ + ⇧ + C                  | Toggle console log                                | Workspace                       |
| ⌘ + .                      | Run custom script                                 | Workspace                       |
| ⌘ + R                      | Reload workspace                                  | Workspace                       |
| ⌘ + \[                     | Navigate to left tab                              | Workspace                       |
| ⌘ + ]                      | Navigate to right tab                             | Workspace                       |
| ⇧ + ⌘ + \[                 | Navigate to left Pane                             | Workspace                       |
| ⇧ + ⌘ + ]                  | Navigate to right Pane                            | Workspace                       |
| ⌘ + ⇧ + D                  | Split Pane Horizontally                           | Workspace                       |
| ⌘ + Number                 | Navigate to number tab                            | Workspace                       |
| ⌘ + K                      | Switch database                                   | Workspace                       |
| ⌘ + ⇧ + K                  | Switch Connection                                 | Workspace                       |
| ⌘ + I or ⌃ + I             | Indent selected SQL Code                          | Workspace - SQL Tab, SQL Viewer |
| ⌘ + ⏎                      | Execute SQL Code                                  | Workspace - SQL Tab             |
| ⌘ + O                      | Open file SQL                                     | Workspace - SQL Tab             |
| ⌘ + I                      | Beautify selected SQL statements                  | Workspace - SQL Tab             |
| ⇧ + ⌘ + I                  | Uglify selected SQL statements                    | Workspace - SQL Tab             |
| ⇧ + ⌘ + S                  | Save selected SQL statements as                   | Workspace - SQL Tab             |
| ⌘ + /                      | Comment/Uncomment lines of SQL                    | Workspace - SQL Tab             |
| ⌘ + Click                  | Add cursors at arbitrary positions                | Workspace - SQL Tab             |
| ⌃ + ⇧ + **↑**              | Add additional cursors above the current line     | Workspace - SQL Tab             |
| ⌃ + ⇧ + **↓**              | Add additional cursors below the current line     | Workspace - SQL Tab             |
| ⌘ + D                      | Select the next instance of the current highlight | Workspace - SQL Tab             |
| ⌘ + ⌃ + G                  | Select all instances of the current highlight     |                                 |
| ⌘ + Z                      | Undo                                              | Workspace                       |
| ⌘ + ⇧ + Z                  | Redo                                              | Workspace                       |
| ⌘ + P                      | Open anything                                     | Workspace                       |
| ⌘ + E                      | Open SQL Query                                    | Workspace                       |
| Middle mouse click on Cell | Open quick look                                   | Table Data                      |
| Space                      | Toggle row detail when row selected               | Table Data                      |
| ⌘ + C                      | Copy rows                                         | Table Data                      |
| ⌘ + V                      | Paste rows                                        | Table Data                      |
| ⌘ + D                      | Duplicate row                                     | Table Data                      |
| ⌘ + I                      | Insert a new row                                  | Table Data                      |
| ⌘ + F                      | Open Row Filter                                   | Table Data                      |
| ⌘ + ⌥ + F                  | Open Column Filter                                | Table Data                      |
| ⌥ + click on field         | Open Quick edit Menu                              | Workspace - Table Data          |
| Tab                        | Move focus while editing                          | Workspace - Table Data          |


# Licensing

## Purchase a license

TablePlus is free to download and use for as long as you need it to, but there are some usage limitations to it: you can have a maximum of 2 active tabs, 2 active windows, and 2 advanced filters at a time.

To remove the limitations, you might have to purchase a license. This is a perpetual (lifetime) license that includes one year’s worth of updates. After one year from the date of purchase, you can either renew the license to keep updating the app to the latest version, or you can use the old build (the build before the license expires) without any limitation forever.

* To buy a license: <https://tableplus.com/pricing>
* To add more seats to an existing license: <https://tableplus.com/order/extend-seats>
* To renew the license: <https://tableplus.com/order/renew-license>

After you purchase a license you will receive your license key via email.

## Activate license

To activate the license, launch the TablePlus app, and navigate to menu **`TablePlus`** > **`Register license…`** (or you can click on **`Register`** on welcome screen), copy-and-paste in the license key from your email.

{% hint style="info" %}
If you lost your key please visit license manager to recover it: [License manager](https://tableplus.com/license-manager/access-link)
{% endhint %}

## Using multiple devices

When you purchase a TablePlus single-seat license, your license entitles you to use TablePlus on one computer only. If you have multiple devices, or people using TablePlus, you can either purchase a volume license at a discount or add more seats to an existing license.

## Moving to a new device

If you have formatted your device or you want to use TablePlus licenses on a new device, you’ll need to unlink your old device using [License Manager](https://tableplus.com/license-manager/access-link).

After removing the old device, you can use the license key to activate the new device.

## Lost license key

If you couldn't find your license key, request access to the license manager using the email used for the license purchase and you will find all your license information in the license manager.

License manager: <https://tableplus.com/license-manager/access-link>

If you also forgot the email address, please send an email to <nick@tableplus.com> with as much information about the license/purchase as you can.

## Transfer license

If you want to transfer the ownership of the license to another email address. You can use the license manager: <https://tableplus.com/license-manager/access-link>\
\
If you lost access to the license email, please send a request to <nick@tableplus.com> with all the license details. We will update it manually for you.

## Invoice

We are currently using the payment services from Paddle.com and they handle all payment-related matters including invoices and tax. After you finish placing an order, you will receive two separate emails at the registered email address:

* One email from TablePlus (**<no-reply@tableplus.com>**) with the license key.
* One email from Paddle (**\*@paddle.com**) with the invoice.

In the email from Paddle, you will be provided a link to your online invoice, where you can edit and add your information as well as company tax information.

Taxes will be charged based on your location. To learn more, please visit: <https://paddle.com/support/which-countries-does-paddle-charge-vat-for/>

Here is a sample of the invoice:

![](/files/-LrnXtjjGjAvM_dvXzS2)

## For resellers

For software resellers, please refer to these [FAQs](https://tableplus.com/blog/2019/08/reseller-faq.html).


# Troubleshooting

Here are some common issues that you might encounter and how to fix them.

## The connection window is hidden

**Issue**: A new window is opened and you can see it in Mission Control, but it doesn't show up.

**What to do**: Open Terminal and run the command below to remove the config file (No data loss so don't worry):

```
rm ~/Library/Preferences/com.tinyapp.TablePlus.plist
```

## Can't connect over SSH

**Issue**: The connection setup is correct but you can't connect via SSH Tunnelling.

**What to do**: This is a very unexpected issue. If you encounter this, enable the SSH debug log (navigate to the menu **`Help` > `Enable SSH Debug Log`**) then send the log to **<nick@tableplus.com>**. It will help us troubleshoot faster.

## **The package is damaged**

**Issue**: You install the app on macOS and see the error message: "***The package is damaged***".

**What to do**: It's probably because your macOS version is not supported. TablePlus supports macOS 10.11 and newer. Update your macOS then.

## Error displaying table data

**Issue**: When opening a table data, some characters can't be shown correctly.

**What to do**: Change to use proper Encoding, navigate to the menu **`Connection`** > **`View Using Encoding`** > Then choose the encoding suitable for the table.

## The query results section is hidden

**Issue**: The table of query results is hidden. Even after you execute the query, you still can't find it.

**What to do**: Drag the bottom border of the query editor up.

![](/files/-LsXXW-FJ3gUueXIUliC)

## Can't import CSV

**Issue**: When importing data from a CSV file, there are some errors that make it unable to finish.

**What to do**: There are generally two reasons for that:&#x20;

* **The wrong encoding was used**. Then change encoding and try again.
* **Mismatch datatype**. It's important to do some basic data checking before importing and make sure the datatypes are matched correctly

To make it easier, when you import, you can match all fields as text fields and that works for 99% of the time. You can have the option to create a table with all text columns.

![](/files/-LsXT3tSbhfyWQLmZjir)

## Invalid License

**Issue**: You have a valid license key but when trying to activate it, it says **The license key is invalid.**

**What to do:** Many users got this error because of pasting multiple times. Make sure you copy the exact license key and paste it one time in the field to activate it.


# LLM Plugin

You can enable/disable the LLM plugin in the TablePlus settings. It is enabled by default when you download the app from our website.

<figure><img src="/files/tqDgc1GXRz2zch7VJx7B" alt=""><figcaption></figcaption></figure>

TablePlus LLM plugin is located on the right sidebar

<figure><img src="/files/UDjZL7lYiHeLaR04QfZJ" alt=""><figcaption></figcaption></figure>

TablePlus LLM plugin is just a chat client:<br>

1. Your data records (data rows) are never sent to the LLM.

   TablePlus will never send your data records to a language model, and the LLM does not have permission to access your data—now or ever.
2. Table/view structure (table/view SQL creation) may be shared when using AI features.

   When you use the AI feature, TablePlus and the LLM may access your table structure (i.e., the table creation statement), but not the actual data.
3. Secure transmission to your LLM.

   TablePlus sends the table structure *directly* to your configured LLM—there is no intermediary involved.

So the security is entirely dependent on your setup. If you block access to the LLM vendors, the TablePlus plugin will not work. The query that TablePlus sends to the LLM depends on your configuration—you can point it to OpenAI, Anthropic, Github Copilot... or a local LLM instance.


