[官网]CREATE EXTENSION PostGreSQL 创建函数的方法
CREATE EXTENSION
https://www.postgresql.org/docs/current/sql-createextension.html
CREATE EXTENSION — install an extension
Synopsis
CREATE EXTENSION [ IF NOT EXISTS ]extension_name
[ WITH ] [ SCHEMAschema_name]
[ VERSIONversion]
[ FROMold_version]
[ CASCADE ]
Description
CREATE EXTENSION loads a new extension into the current database. There must not be an extension of the same name already loaded.
Loading an extension essentially amounts to running the extension's script file. The script will typically create new SQL objects such as functions, data types, operators and index support methods. CREATE EXTENSION additionally records the identities of all the created objects, so that they can be dropped again if DROP EXTENSION is issued.
Loading an extension requires the same privileges that would be required to create its component objects. For most extensions this means superuser or database owner privileges are needed. The user who runs CREATE EXTENSION becomes the owner of the extension for purposes of later privilege checks, as well as the owner of any objects created by the extension's script.
Parameters
IF NOT EXISTS-
Do not throw an error if an extension with the same name already exists. A notice is issued in this case. Note that there is no guarantee that the existing extension is anything like the one that would have been created from the currently-available script file.
extension_name-
The name of the extension to be installed. PostgreSQL will create the extension using details from the file
SHAREDIR/extension/extension_name.control. schema_name-
The name of the schema in which to install the extension's objects, given that the extension allows its contents to be relocated. The named schema must already exist. If not specified, and the extension's control file does not specify a schema either, the current default object creation schema is used.
If the extension specifies a
schemaparameter in its control file, then that schema cannot be overridden with aSCHEMAclause. Normally, an error will be raised if aSCHEMAclause is given and it conflicts with the extension'sschemaparameter. However, if theCASCADEclause is also given, thenschema_nameis ignored when it conflicts. The givenschema_namewill be used for installation of any needed extensions that do not specifyschemain their control files.Remember that the extension itself is not considered to be within any schema: extensions have unqualified names that must be unique database-wide. But objects belonging to the extension can be within schemas.
version-
The version of the extension to install. This can be written as either an identifier or a string literal. The default version is whatever is specified in the extension's control file.
old_version-
FROMold_versionmust be specified when, and only when, you are attempting to install an extension that replaces an “old style” module that is just a collection of objects not packaged into an extension. This option causesCREATE EXTENSIONto run an alternative installation script that absorbs the existing objects into the extension, instead of creating new objects. Be careful thatSCHEMAspecifies the schema containing these pre-existing objects.The value to use for
old_versionis determined by the extension's author, and might vary if there is more than one version of the old-style module that can be upgraded into an extension. For the standard additional modules supplied with pre-9.1 PostgreSQL, useunpackagedforold_versionwhen updating a module to extension style. CASCADE-
Automatically install any extensions that this extension depends on that are not already installed. Their dependencies are likewise automatically installed, recursively. The
SCHEMAclause, if given, applies to all extensions that get installed this way. Other options of the statement are not applied to automatically-installed extensions; in particular, their default versions are always selected.
Notes
Before you can use CREATE EXTENSION to load an extension into a database, the extension's supporting files must be installed. Information about installing the extensions supplied with PostgreSQL can be found in Additional Supplied Modules.
The extensions currently available for loading can be identified from the pg_available_extensions or pg_available_extension_versions system views.
For information about writing new extensions, see Section 38.16.
Examples
Install the hstore extension into the current database:
CREATE EXTENSION hstore;
Update a pre-9.1 installation of hstore into extension style:
CREATE EXTENSION hstore SCHEMA public FROM unpackaged;
Be careful to specify the schema in which you installed the existing hstore objects.
Compatibility
CREATE EXTENSION is a PostgreSQL extension.
See Also
Submit correction
If you see anything in the documentation that is not correct, does not match your experience with the particular feature or requires further clarification, please use this form to report a documentation issue.
[官网]CREATE EXTENSION PostGreSQL 创建函数的方法的更多相关文章
- Spring官网下载dist.zip的几种方法
Spring官网下载dist.zip的几种方法 Spring官网改版后,很多项目的完整zip包下载链接已经隐掉了,虽然Spring旨在引导大家用更“高大上”的maven方式来管理所依赖的jar包, ...
- [PostgreSql]PostgreSql创建函数及函数的执行
1.准备好创建函数的脚本 -- FUNCTION: public.dynamic_placelist_select(integer, timestamp without time zone) -- D ...
- 【转】MyEclipse 9.0正式版官网下载(附Win+Llinux激活方法、汉化包)
MyEclipse 9.0 经过 M1,M2,终于出了正式版(MyEclipse For Spring 还是 8.6.1).该版本集成了 Eclipse 3.6.1,支持 HTML5 和 JavaEE ...
- 从微软官网下载VS离线安装包的方法
这里描述是包括所有版本,截图以下载VS2017社区版为例: ①登入VS官网下载页面,选择需要的版本点击下载,下载页点此进入. ②下载完成后,打开下载文件所在文件夹,Windows 8.1及以上版本用户 ...
- javascript创建函数的方法
函数对任何语言来说都是一个核心的概念.函数,是一种封装(将一些语句,封装到函数里面). 通过函数可以封装任意多条语句,而且可以在任何地方.任何时候调用执行. ECMAScript中的函数使用funct ...
- JavaScipt创建函数的方法
JavaScipt的函数的定义有三种方式: 一.命名函数定义 1.JavaScript 函数通过 function 关键词进行定义,其后是函数名和括号 (). 2.函数名可包含字母.数字.下划线和美 ...
- postgresql 创建函数
One of the most powerful features of PostgreSQL is its support for user-defined functions written in ...
- JS创建函数的方法
方法一:函数声明. function foo(){ } 方法二:函数表达式. var foo=function(){ } 另外还有一种自执行函数表达式.主要用于创建一个新的作用域,在此作用域内声明的变 ...
- postgresql 导出函数的方法
先放一条mysql的导出语句 /usr/bin/mysqldump -h127.30.100.33 -P3388 -uname -ppassword --databases databasename ...
随机推荐
- rem实现自适应
总结一下,rem实现自适应:用rem代替px,配合媒体查询设置font-size:n%. 首先,px是死的.若一律用px,那就会大的显得小,小的屏幕显得大.其次,rem是活的,通过设置字体大小可以引起 ...
- WPF自定义控件(五)の用户控件(完结)
用户控件,WPF中是继承自UserControl的控件,我们可以在里面融合我们的业务逻辑. 示例:(一个厌恶选择的用户控件) 后端: using iMicClassBase; using iMicCl ...
- Jenkins+Ansible+Gitlab自动化部署三剑客-gitlab本地搭建
实际操作 准备linux初始环境 关闭防火墙 systemctl stop firewalld 开机自己关闭 systemctl disable firewalld 设置安全配置 为关闭 vim /e ...
- @RequestParam 和@RequestBody 的区别?
@RequestParam用来接收: 1 用来处理简单的参数绑定 2 用来接收 Content-Type 是 application/x-www-form-urlencoded (这种格 式的数据 ...
- 测试一下robotgo自动化操作,顺便解决了原来的mingw版本中只有gcc,没有g++的问题
参考:https://gitee.com/veni0/robotgo#examples 但是编译不成功 找到这个:https://gitee.com/veni0/robotgo#examples ( ...
- P2370 yyy2015c01的U盘(二分+背包)
思路:先说一下题意吧.就是给你n个文件大小为v,价值为c, 但是硬盘的大小为S, 而且要存的总价值大于等于p.问每次传输k大小的文件.问k的最大值是多少? 我们以k为二分对象. 直接讲检验函数吧. 假 ...
- 【转】Android多进程总结一:生成多进程(android:process属性)
前言 正常情况下,一个apk启动后只会运行在一个进程中,其进程名为apk的包名,所有的组件都会在这个进程中运行,以下为DDMS的进程截屏: com.biyou.multiprocess为进程名,也是a ...
- 【js】统计数组中某些项的个数
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title> ...
- 【js】横/纵向无缝滚动
1.纵向无缝滚动(类似淘宝) ps:存在一个问题,当鼠标移入时,未关闭定时器 <!DOCTYPE html> <html> <head> <meta char ...
- 微服务框架surging学习之路——序列化 (转载https://www.cnblogs.com/alangur/p/10407727.html)
微服务框架surging学习之路——序列化 1.对微服务的理解 之前看到在群里的朋友门都在讨论微服务,看到他们的讨论,我也有了一些自己的理解,所谓微服务就是系统里的每个服务都 可以自由组合.自由组 ...