作为PL/pgSQL的新手,这个函数中双美元符号的含义是什么:
CREATE OR REPLACE FUNCTION check_phone_number(text)
RETURNS boolean AS $$
BEGIN
IF NOT $1 ~ e'^\\+\\d{3}\\ \\d{3} \\d{3} \\d{3}$' THEN
RAISE EXCEPTION 'Wrong formated string "%". Expected format is +999 999';
END IF;
RETURN true;
END;
$$ LANGUAGE plpgsql STRICT IMMUTABLE;
Run Code Online (Sandbox Code Playgroud)
我猜,在RETURNS boolean AS $$,$$是一个占位符.
最后一行有点神秘: $$ LANGUAGE plpgsql STRICT IMMUTABLE;
顺便说一句,最后一行是什么意思?
我正在尝试在PostgreSQL中编写两种类型的存储过程.从我的理解Postgre只有功能.我想知道是否有人可以查看我的代码并提供指针.另外,我不熟悉是否使用了间距/新的命令行.
第一个函数需要从用户获取输入并将其添加到表中. 假设我们有一个表名为"Car",其属性为"model"和"year".这是一个正确的存储功能,可以将新车添加到桌面吗?
CREATE OR REPLACE FUNCTION
addto_car(model IN Car.model%type, year IN Car.year%type)
RETURNS
void
AS $$
BEGIN
INSERT INTO Car VALUES(model, year);
END;
$$ LANGUAGE plpgsql; (#Is this correct? I'm using postgresql 9)
Run Code Online (Sandbox Code Playgroud)
----------正在进行中的代码 功能1
CREATE OR REPLACE FUNCTION
addto_car(In model Car.model%type, IN year Car.year%type)
AS $$
BEGIN
INSERT INTO Car VALUES(model, year);
END;
$$ LANGUAGE plpgsql;
Run Code Online (Sandbox Code Playgroud)
这现在有效!(将值模型和年份插入Car).