title: Before insert trigger to replace new data postgres
body: <p>I have a table with two data columns: col1 and col2. Col1 is text field and col2 is time. Col1 is required, col2 is not, so it should have a default value of null. I use pgAdmin, which is completely new to me, as sql trigger is. I have the following trigger function code:</p>
  
  <pre><code>CREATE OR REPLACE FUNCTION schema.table_replace()
    RETURNS trigger AS
    LANGUAGE 'plpgsql';
  $BODY$
  BEGIN
      (CASE
          WHEN NEW.col1='111' THEN NEW.col1='aaa'
          WHEN NEW.col1='222' THEN NEW.col1='bbb'
          WHEN NEW.col1='333' THEN NEW.col1='ccc'
          ELSE NEW.col1='error'
      END);
  return NEW;
  END;
  $BODY$
  </code></pre>
  
  <p>And that could be the before trigger (just current values should be affected, not all rows):</p>
  
  <pre><code>CREATE TRIGGER schema.table_replace
    BEFORE INSERT
    ON schema.table
    EXECUTE PROCEDURE schema.table_replace();
  </code></pre>
  
  <p>To tell the truth, I know nothing about pgAdmin, it seems to be much more complicated than writing the code and run it with query tool. The problem is to handle the case when there is no second value (it is optional), and in this case the col2 of the row should be left untouched, and the SQL code returns errors as well. 
  Could you give some help to make it running and creating the function and the trigger? 
  Thanks.</p>