赞
踩
模式在PostgreSQL中,类似于目录。同一数据库,不同模式下,可以存放相同名称的数据表。模式下,通常可以存放不同的数据对象,如表、视图、函数、存储过程、触发器、索引等。默认情况下会使用系统创建的public作为数据表的schema。
postgres=# \dn
List of schemas
Name | Owner
--------+----------
public | postgres
(1 row)
通常我们可以使用create
关键字直接创建模式,通过[schema_name].table_name
来指定需要将数据表创建在哪个模式下。
create schema myschema;
create table myschema.tb_user (
id serial primary key);
模式在删除时使用drop
关键字,需要确保模式中不存在任何数据库对象,否则需要使用cascade
进行级联删除。
PostgreSQL也提供了许多约束,如主键、唯一、不为空等等。Exclusion是一种排他约束。
yum -y install postgresql12-contrib.x86_64
即可。postgres=# create extension btree_gist;
CREATE EXTENSION
postgres=# create table public.tb_employee (
postgres(# id serial primary key,
postgres(# name text,
postgres(# age integer,
postgres(# exclude using gist (name with =, age with <>)
postgres(# );
CREATE TABLE
postgres=# insert into tb_employee(name, age) values('Zhangsan', 12);
INSERT 0 1
postgres=# insert into tb_employee(name, age) values('Zhangsan', 13);
ERROR: conflicting key value violates exclusion constraint "tb_employee_name_age_excl"
DETAIL: Key (name, age)=(Zhangsan, 13) conflicts with existing key (name, age)=(Zhangsan, 12).
postgres=# insert into tb_employee(name, age) values('Lisi', 12);
INSERT 0 1
PostgreSQL官方支持PL/pgSQL、PL/Tcl、PL/Perl和PL/Python等过程语言,同时还支持第三方提供的过程语言,如PL/Java、PL/PHP、PL/Py、PL/R、PL/Ruby、PL/Scheme、PL/sh。
contact
字段的键值Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。