O comando LISTEN registra o processo servidor corrente do PostgreSQL para escutar a condição de notificação nome.
Sempre que o comando NOTIFY nome é executado, tanto por este processo servidor quanto por qualquer outro conectado ao mesmo banco de dados, todos os processos servidores escutando esta condição de notificação neste instante são notificados, e cada um por sua vez notifica o aplicativo cliente ao qual está conectado. Consulte a discussão do comando NOTIFY para obter mais informações.
Um processo servidor pode cancelar seu registro para uma dada condição de notificação usando o comando UNLISTEN. Os registros de escuta de um processo servidor são automaticamente removidos quando o processo servidor encerra sua execução.
O método que o aplicativo cliente deve usar para detectar eventos de notificação depende da interface de programação de aplicativos (API) do PostgreSQL sendo usada. Usando a biblioteca libpq básica, o aplicativo executa o comando LISTEN como um comando SQL comum e depois passa a chamar periodicamente a rotina PQnotifies para descobrir se algum evento de notificação foi recebido. Outras interfaces, como a libpgtcl, fornecem métodos de nível mais alto para tratar os eventos de notificação; na verdade, usando a libpgtcl o programador do aplicativo não precisa nem executar o comando LISTEN ou UNLISTEN diretamente. Consulte a documentação da biblioteca sendo usada para obter mais detalhes.
O comando NOTIFY contém uma discussão mais extensa da utilização do comando LISTEN e do comando NOTIFY.
nome pode ser qualquer cadeia de caracteres válida como um nome; não precisa corresponder ao nome de qualquer tabela existente. Se nome_notificação estiver entre aspas ("), não é necessário nem que seja um nome com uma sintaxe válida; pode ser qualquer cadeia de caracteres com até 31 caracteres.
Em algumas versões anteriores do PostgreSQL, o nome tinha que vir entre aspas quando não correspondia a nenhum nome de tabela existente, mesmo que sintaticamente fosse um nome válido, mas não é mais necessário.