plv8: JavaScript语言
plv8
扩展允许你在Postgres中使用JavaScript。
概述
虽然Postgres原生运行SQL,但它也可以运行其他 "程序语言"。
plv8
允许你运行JavaScript代码-特别是任何在V8 JavaScript引擎上运行的代码。
它可以用于数据库函数、触发器、查询等。
使用方法
启用扩展
- 进入仪表板中的数据库页面。
- 点击侧边栏中的扩展。
- 搜索 "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;