Синтаксис функции триггера PostgreSQL после `RETURNS TRIGGER AS`

Итак, я видел этот пример в документации:

CREATE TABLE emp (
    empname text,
    salary integer,
    last_date timestamp,
    last_user text
);

CREATE FUNCTION emp_stamp() RETURNS trigger AS $emp_stamp$
    BEGIN
        -- Check that empname and salary are given
        IF NEW.empname IS NULL THEN
            RAISE EXCEPTION 'empname cannot be null';
        END IF;
        IF NEW.salary IS NULL THEN
            RAISE EXCEPTION '% cannot have null salary', NEW.empname;
        END IF;

        -- Who works for us when they must pay for it?
        IF NEW.salary < 0 THEN
            RAISE EXCEPTION '% cannot have a negative salary', NEW.empname;
        END IF;

        -- Remember who changed the payroll when
        NEW.last_date := current_timestamp;
        NEW.last_user := current_user;
        RETURN NEW;
    END;
$emp_stamp$ LANGUAGE plpgsql;

CREATE TRIGGER emp_stamp BEFORE INSERT OR UPDATE ON emp
    FOR EACH ROW EXECUTE PROCEDURE emp_stamp();

где RETURNS trigger AS $emp_stamp$ использовать то же имя триггера. Но в другом примере он был оставлен пустым $$.

Какая польза от имени между двумя $?

Спасибо!


person Jasper_Li    schedule 02.10.2017    source источник
comment
postgresql.org/docs/ текущий/статический/   -  person a_horse_with_no_name    schedule 03.10.2017
comment
Прочитав документацию и связанный пост, я все еще в замешательстве: когда используется тег в двойном знаке доллара? - В настоящее время я предполагаю, что тег фиксирует возвращаемое значение функции, которое можно использовать для замены текста позже.   -  person Jasper_Li    schedule 03.10.2017
comment
@Jasper_Li: я добавил еще один оригинал, чтобы прояснить, как работает долларовая котировка, а не как ваше текущее предположение.   -  person Erwin Brandstetter    schedule 03.10.2017
comment
В ПОРЯДКЕ. Итак, в примере $tag$blablabal$tag$ тег просто для пояснения.   -  person Jasper_Li    schedule 04.10.2017