April 2018
Intermediate to advanced
508 pages
15h 22m
English
The orders_insert_trigger() function shown previously is static; the statements it executes are the same every time. As you might expect from reading the code, the actual execution time will vary based on which partition you are inserting into, and maintaining that trigger code is both monotonous and error prone. It's possible to remove the maintenance chore by just directly computing the partition required:
CREATE OR REPLACE FUNCTION orders_insert_trigger()
RETURNS TRIGGER AS $$
DECLARE
ins_sql TEXT;
BEGIN
ins_sql :=
'INSERT INTO orders_'|| to_char(NEW.orderdate, 'YYYY_MM') ||
'(orderid,orderdate,customerid,net_amount,tax,totalamount) VALUES ' || '('|| NEW.orderid || ',' || quote_literal(NEW.orderdate) || ',' ...Read now
Unlock full access