mirror of
https://github.com/jbranchaud/til
synced 2026-01-03 07:08:01 +00:00
Add Creating Custom Types as a postgres til
This commit is contained in:
32
postgres/creating-custom-types.md
Normal file
32
postgres/creating-custom-types.md
Normal file
@@ -0,0 +1,32 @@
|
||||
# Creating Custom Types
|
||||
|
||||
PostgreSQL has support for creating custom types. When you need something
|
||||
more expressive than the built-in types and you don't want your data spread
|
||||
across multiple columns, you can instead create a custom type.
|
||||
|
||||
```sql
|
||||
create type dimensions as (
|
||||
width integer,
|
||||
height integer,
|
||||
depth integer
|
||||
);
|
||||
```
|
||||
|
||||
This new type can then be used in the definition of a new table
|
||||
|
||||
```sql
|
||||
create table moving_boxes (
|
||||
id serial primary key,
|
||||
dims dimensions not null
|
||||
);
|
||||
```
|
||||
|
||||
and when inserting data
|
||||
|
||||
```sql
|
||||
insert into moving_boxes (dims) values (row(3,4,5)::dimensions);
|
||||
```
|
||||
|
||||
See the [`create type`
|
||||
docs](http://www.postgresql.org/docs/current/static/sql-createtype.html) for
|
||||
more details.
|
||||
Reference in New Issue
Block a user