> ## Documentation Index
> Fetch the complete documentation index at: https://docs.lancedb.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Management

> Create, list, and drop the objects in a catalog, from Python, TypeScript, or SQL.

Use the SDKs or SQL to manage [catalog objects](https://docs.lancedb.com/basics/catalog.md), including
tables, namespaces and views. The tables below provide a quick reference to
the available methods; each object's guide covers its setup and behavior.

Some long-running operations also provide a submission method that returns a
[job](https://docs.lancedb.com/basics/jobs.md). See the operation's guide for how to track completion.

## Management APIs

> [!NOTE]
>
> SQL is available through the Enterprise Flight SQL endpoint.
> See [SQL](https://docs.lancedb.com/basics/sql.md#sql-is-remote).

### Namespaces

| | Python | TypeScript | SQL |
| - | - | - | - |
| create | `create_namespace` | `createNamespace` | -- |
| list | `list_namespaces` | `listNamespaces` | -- |
| describe | `describe_namespace` | `describeNamespace` | -- |
| exists | `namespace_exists` | -- | -- |
| drop | `drop_namespace` | `dropNamespace` | -- |

See [Namespaces](https://docs.lancedb.com/management/namespace.md).

### Tables

| | Python | TypeScript | SQL |
| - | - | - | - |
| create | `create_table` | `createTable` | `CREATE TABLE` |
| create empty | `create_table(schema=)` | `createEmptyTable` | `CREATE TABLE` |
| open | `open_table` | `openTable` | -- |
| list | `table_names`, `list_tables` | `tableNames`, `listTables` | -- |
| exists | `table_exists` | -- | -- |
| rename | `rename_table` | `renameTable` | -- |
| clone | `clone_table` | `cloneTable` | -- |
| drop | `drop_table`, `drop_table_async` | `dropTable`, `dropTableAsync` | `DROP TABLE` |
| drop all | `drop_all_tables` | `dropAllTables` | -- |

See [Tables](https://docs.lancedb.com/management/table.md) for creating one and shaping its schema.

### Materialized views

| | Python | TypeScript | SQL |
| - | - | - | - |
| create | `create_materialized_view` | `createMaterializedView` | `CREATE MATERIALIZED VIEW` |
| open | `open_materialized_view` | `openMaterializedView` | -- |
| list | `list_materialized_views` | `listMaterializedViews` | `SHOW MATERIALIZED VIEWS` |
| refresh | `refresh` | `refresh` | `REFRESH MATERIALIZED VIEW` |
| drop | `drop_table` | `dropTable` | `DROP TABLE` |

> [!NOTE]
>
> Local `list_materialized_views` reads table schemas to find views. On
> Enterprise, it requests the server's view listing.

See [Materialized views](https://docs.lancedb.com/management/materialized-view.md) for creating one, and
[Refresh a materialized view](https://docs.lancedb.com/feature-engineering/refresh-materialized-view.md) for keeping
it current.

### Views

| | Python | TypeScript | SQL |
| - | - | - | - |
| create | `create_view` | `createView` | `CREATE VIEW` |
| list | `list_views` | `listViews` | -- |
| drop | `drop_view`, `drop_view_async` | `dropView`, `dropViewAsync` | `DROP VIEW` |

Enterprise Views exist only on an Enterprise cluster that
enables them; the SDK methods send the view's SQL query to the deployment. See
[Views](https://docs.lancedb.com/management/view.md).

### Functions

| | Python | TypeScript | SQL |
| - | - | - | - |
| create | `create_function`, `create_function_async` | -- | `CREATE FUNCTION` |
| get | `get_function` | -- | `DESCRIBE FUNCTION` |
| list | `list_functions` | -- | `SHOW FUNCTIONS` |
| drop | `drop_function` | -- | `DROP FUNCTION` |

Enterprise A function runs on the server, and only on
a deployment that enables functions, so there is no local form. The TypeScript
SDK has no function methods; use Python or SQL.
See [Functions](https://docs.lancedb.com/management/function.md).

### Jobs

| | Python | TypeScript | SQL |
| - | - | - | - |
| list | `list_jobs` | `listJobs` | `SHOW JOBS` |
| open | `open_job` | `openJob` | -- |
| cancel | `cancel_job` | `cancelJob` | -- |
| errors | `job.events` | `job.events` | `SHOW ERRORS` |

See [Job Framework](https://docs.lancedb.com/basics/jobs.md).

### Indexes

| | Python | TypeScript | SQL |
| - | - | - | - |
| create | `create_index`, `create_index_async` | `createIndex`, `createIndexAsync` | `CREATE INDEX` |
| list | `list_indices` | `listIndices` | -- |
| stats | `index_stats` | `indexStats` | -- |
| drop | `drop_index` | `dropIndex` | `DROP INDEX` |

> [!NOTE]
>
> SQL `CREATE INDEX` covers one column and takes no user-chosen name: the server
> names it. For a multi-column or named index, use the SDK.

Indexes are a performance decision rather than a structural one, so they are
covered under [Maintenance](https://docs.lancedb.com/indexing.md).

## Work within a namespace

Most connection-level operations take a `namespace_path` (`namespacePath`) to
act inside a namespace rather than at the database root:

```python Python icon="python" theme={"theme":{"light":"vitesse-light","dark":"catppuccin-mocha"}}
db.table_names(namespace_path=["prod", "events"])
tbl = db.open_table("clicks", namespace_path=["prod", "events"])
```

```typescript TypeScript icon="square-js" theme={"theme":{"light":"vitesse-light","dark":"catppuccin-mocha"}}
await db.tableNames(["prod", "events"]);
const tbl = await db.openTable("clicks", ["prod", "events"]);
```

```sql SQL theme={"theme":{"light":"vitesse-light","dark":"catppuccin-mocha"}}
SELECT * FROM `prod$events`.clicks
```

In SQL the path is written as a `$`-joined schema instead; see
[Namespace](https://docs.lancedb.com/basics/catalog.md#schema) for why it isn't dotted.

## Delete catalog objects

> [!WARNING]
>
> `drop_table` removes the table and every version of it. Table
> [versioning](https://docs.lancedb.com/management/table.md#versioning) does not survive the table being dropped, and
> neither `drop_database` nor `drop_all_tables` asks for confirmation.

Dropping a **view** removes only the saved query. Dropping a **materialized
view** removes stored rows, because a materialized view is a table.


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.