---
title: "CREATE EXTENSION"
url: "https://docs.yugabyte.com/stable/api/ysql/the-sql-language/statements/ddl_create_extension/"
---

# CREATE EXTENSION

Use the CREATE EXTENSION statement to load an extension into a database.

## Synopsis

Use the `CREATE EXTENSION` statement to load an extension into a database.

## Syntax

- [![Grammar Icon](/icons/file-lines.svg)Grammar](#grammar-1)
- [![Diagram Icon](/icons/diagram.svg)Diagram](#diagram-1)

```output.ebnf
create_extension ::= CREATE EXTENSION [ IF NOT EXISTS ] extension_name 
                      [ WITH ] [ SCHEMA schema_name ] 
                     [ VERSION version ] [ CASCADE ]
```

#### create\_extension

CREATEEXTENSIONIFNOTEXISTS[extension\_name](/stable/api/ysql/syntax_resources/grammar_diagrams#extension-name)WITHSCHEMA[schema\_name](/stable/api/ysql/syntax_resources/grammar_diagrams#schema-name)VERSION[version](/stable/api/ysql/syntax_resources/grammar_diagrams#version)CASCADE

## Semantics

- `SCHEMA`, `VERSION`, and `CASCADE` may be reordered.

## Examples

```plpgsql
CREATE SCHEMA myschema;
CREATE EXTENSION pgcrypto WITH SCHEMA myschema VERSION '1.3';
```

```output
CREATE EXTENSION
```

```plpgsql
CREATE EXTENSION IF NOT EXISTS earthdistance CASCADE;
```

```output
NOTICE:  installing required extension "cube"
CREATE EXTENSION
```

## See also

- [PostgreSQL Extensions](/stable/additional-features/pg-extensions/ "PostgreSQL Extensions")
- [DROP EXTENSION](/stable/api/ysql/the-sql-language/statements/ddl_drop_extension "DROP EXTENSION")
