plv8: JavaScript语言

plv8扩展允许你在Postgres中使用JavaScript。

概述

虽然Postgres原生运行SQL,但它也可以运行其他 "程序语言"。 plv8允许你运行JavaScript代码-特别是任何在V8 JavaScript引擎上运行的代码。

它可以用于数据库函数、触发器、查询等。

使用方法

启用扩展

  1. 进入仪表板中的数据库页面。
  2. 点击侧边栏中的扩展
  3. 搜索 "plv8 "并启用该扩展。

创建plv8函数#

plv8编写的函数和其他PostgreSQL函数一样,只是 语言标识符设置为plv8

1create or replace function function_name()
2returns void as $$
3    // V8 JavaScript
4    // code
5    // here
6$$ language plv8;

你可以像其他Postgres函数一样调用plv8函数:

1select function_name();

示例

标量函数

一个标量函数是接受某些用户输入并返回单个结果。

1create or replace function hello_world(name text)
2returns text as $$
3
4    let output = `Hello, ${name}!`;
5    return output;
6
7$$ language plv8;

正在执行SQL#

可以使用plv8.execute函数plv8代码中执行SQL。

1create or replace function update_user(id bigint, first_name text)
2returns smallint as $$
3
4    var num_affected = plv8.execute(
5        'update profiles set first_name = $1 where id = $2',
6        [first_name, id]
7    );
8
9    return num_affected;
10$$ language plv8;

设置返回函数

一个set-returning函数可以返回一整套结果--例如,表中的行。

1create or replace function get_messages()
2returns setof messages as $$
3
4    var json_result = plv8.execute(
5        'select * from messages'
6    );
7
8    return json_result;
9$$ language plv8;

资源