postgresql 中存储过程中参数的命名约定
Naming convention for parameters in stored procedures in postgresql
postgres 中存储过程的参数是否有命名约定?我想将我的参数与我的列名区分开来,以便于阅读,所以 student_id(列)= s_id(参数),period(列)= per(参数名),assignment(列) ) = asgmt (参数), ect..
CREATE PROCEDURE
insert_assignment(s_id INT, per INT, cl VARCHAR(50), ln VARCHAR(50), sp_id INT, asgmt VARCHAR(500))
LANGUAGE SQL
AS $$
INSERT INTO
assignment(sped_id, assignment)
VALUES
(sp_id, asgmt);
UPDATE assignment ss
SET student_schedule_id=
(SELECT
ss.student_schedule_id
FROM
student_schedule ss
LEFT JOIN
class_teacher ct on ct.class_teacher_id=ss.class_teacher_id
LEFT JOIN
teacher t on t.teacher_id=ct.teacher_id
LEFT JOIN
class c on c.class_id=ct.class_id
WHERE
ss.student_id=s_id AND ss.period=per
)
WHERE assignment=asgmt
$$
没有什么既定的约定,但我看到了 2 个共同的主题。但是首先不要截断参数名称,这实际上会使阅读和理解它们变得更加困难;还要对齐它们,而不仅仅是将它们串起来。最常见的是将参数设置为 p_ 。另一种是在参数的用法后缀 _in 或 _ot
示例:
CREATE PROCEDURE
insert_assignment(p_student_id INT, p_period INT, p_cl VARCHAR(50), p_ln VARCHAR(50), p_sped_id INT, p_assignment VARCHAR(500))
LANGUAGE SQL ...
or
CREATE PROCEDURE
insert_assignment(student_id_in INT,
period_in INT,
cl_in VARCHAR(50),
ln_in VARCHAR(50),
sped_id_in INT,
assignment_in VARCHAR(500)
)
LANGUAGE SQL ...
不确定 cl,ln,因为您没有使用它们。至于 sepd,如果它在您的组织中被普遍使用,那很好,否则(恕我直言)这是一个糟糕的名字。理解你的主要目标,而不是减少打字。 (这来自一个非常糟糕的打字员)
postgres 中存储过程的参数是否有命名约定?我想将我的参数与我的列名区分开来,以便于阅读,所以 student_id(列)= s_id(参数),period(列)= per(参数名),assignment(列) ) = asgmt (参数), ect..
CREATE PROCEDURE
insert_assignment(s_id INT, per INT, cl VARCHAR(50), ln VARCHAR(50), sp_id INT, asgmt VARCHAR(500))
LANGUAGE SQL
AS $$
INSERT INTO
assignment(sped_id, assignment)
VALUES
(sp_id, asgmt);
UPDATE assignment ss
SET student_schedule_id=
(SELECT
ss.student_schedule_id
FROM
student_schedule ss
LEFT JOIN
class_teacher ct on ct.class_teacher_id=ss.class_teacher_id
LEFT JOIN
teacher t on t.teacher_id=ct.teacher_id
LEFT JOIN
class c on c.class_id=ct.class_id
WHERE
ss.student_id=s_id AND ss.period=per
)
WHERE assignment=asgmt
$$
没有什么既定的约定,但我看到了 2 个共同的主题。但是首先不要截断参数名称,这实际上会使阅读和理解它们变得更加困难;还要对齐它们,而不仅仅是将它们串起来。最常见的是将参数设置为 p_ 。另一种是在参数的用法后缀 _in 或 _ot
示例:
CREATE PROCEDURE
insert_assignment(p_student_id INT, p_period INT, p_cl VARCHAR(50), p_ln VARCHAR(50), p_sped_id INT, p_assignment VARCHAR(500))
LANGUAGE SQL ...
or
CREATE PROCEDURE
insert_assignment(student_id_in INT,
period_in INT,
cl_in VARCHAR(50),
ln_in VARCHAR(50),
sped_id_in INT,
assignment_in VARCHAR(500)
)
LANGUAGE SQL ...
不确定 cl,ln,因为您没有使用它们。至于 sepd,如果它在您的组织中被普遍使用,那很好,否则(恕我直言)这是一个糟糕的名字。理解你的主要目标,而不是减少打字。 (这来自一个非常糟糕的打字员)