我想知道我所做的是使用可选参数向记录添加记录的正确方法,特别是我想知道如何改进“IF”中的代码。
我正在使用postgreSQL。
CREATE OR REPLACE FUNCTION add_record(_ID_Father_table VARCHAR(10), _ID_Son_table VARCHAR(10), _Optional1 VARCHAR(50) DEFAULT ' ', _Optional2 INTEGER DEFAULT -1)
RETURNS void AS $$
BEGIN
INSERT INTO Father_Table(ID_Father) VALUES (_ID_Father_Table);
INSERT INTO Son_Table(ID_Son, ID_Father) VALUES (_ID_Son_Table, _ID_Father_Table);
IF _Optional1 <> ' ' THEN
UPDATE Son_Table SET Optional1 =_Optional1 WHERE ID_Son=_ID_Son;
END IF;
IF _Optional2 <> -1 THEN
UPDATE Paese SET Optional2=_Optional2 WHERE ID_Son=_ID_Son;
END IF;
END;
$$ LANGUAGE plpgsql;
Father_Table可以是(例如)Son_Table,Son_Table2和Son_Table3 具有完全独有的isa层次结构。
Father_Table(ID_Father, ...)
PK: ID_Father
Son_Table(ID_Son, ID_Father, Optional1, Optional2)
PK: ID_Son, ID_Father
FK: ID_Father References Father_Table
Son_Table2(ID_Son2, ID_Father, ...)
PK: ID_Son, ID_Father
FK: ID_Father References Father_Table