use*_*ser 1 sql postgresql debugging console
我使用以下命令运行SQL文件:
PGPASSWORD=admin;
psql --host "localhost" --port 5432 --username "postgres" -d "aula21" < $1
Run Code Online (Sandbox Code Playgroud)
我搜索了很多,然后发现了这个策略:
DO $$ BEGIN
RAISE INFO ' ';
RAISE INFO ' ';
RAISE INFO '1...';
END $$;
SELECT paciente.nome
FROM paciente
WHERE paciente.idade =
( SELECT MIN( paciente.idade )
FROM paciente );
DO $$ BEGIN
RAISE INFO ' nome ';
RAISE INFO '-----------------';
RAISE INFO 'Maria Aparecida';
RAISE INFO ' ';
RAISE INFO ' ';
RAISE INFO ' ';
RAISE INFO '2...';
END $$;
SELECT consulta.data, consulta.hora
FROM consulta
WHERE consulta.valor =
( SELECT MAX( consulta.valor )
FROM consulta );
DO $$ BEGIN
RAISE INFO ' Data hora valor';
RAISE INFO '"2002-03-21"; "09:00:00";122.0000';
RAISE INFO ' ';
RAISE INFO ' ';
RAISE INFO ' ';
RAISE INFO '3...';
END $$;
Run Code Online (Sandbox Code Playgroud)
生成以下输出:
INFO:
INFO:
INFO: 1...
DO
nome
-----------------
Maria Aparecida
(1 row)
INFO: nome
INFO: -----------------
INFO: Maria Aparecida
INFO:
INFO:
INFO:
INFO:
INFO:
INFO:
INFO: 2...
DO
data | hora
------------+----------
2002-03-21 | 09:00:00
(1 row)
INFO: Data hora valor
INFO: "2002-03-21"; "09:00:00";122.0000
INFO:
INFO:
INFO:
INFO:
INFO:
INFO:
INFO: 3...
DO
Run Code Online (Sandbox Code Playgroud)
但是,有没有更好的办法像下面这样写呢?
print ' ';
print ' ';
print '1...';
SELECT paciente.nome
FROM paciente
WHERE paciente.idade =
( SELECT MIN( paciente.idade )
FROM paciente );
print ' nome ';
print '-----------------';
print 'Maria Aparecida';
print ' ';
print ' ';
print ' ';
print ' ';
print ' ';
print ' ';
print '2...';
SELECT consulta.data, consulta.hora
FROM consulta
WHERE consulta.valor =
( SELECT MAX( consulta.valor )
FROM consulta );
print ' Data hora valor';
print '"2002-03-21"; "09:00:00";122.0000';
print ' ';
print ' ';
print ' ';
print ' ';
print ' ';
print ' ';
print '3...';
Run Code Online (Sandbox Code Playgroud)
\echo 'INFO: '
\echo 'INFO: 1...'
\echo 'INFO: '
SELECT paciente.nome
FROM paciente
WHERE paciente.idade =
( SELECT MIN( paciente.idade )
FROM paciente )
\echo 'INFO: nome '
\echo 'INFO: -----------------'
\echo 'INFO: Maria Aparecida'
\echo 'INFO: '
\echo 'INFO: '
\echo 'INFO: '
\echo 'INFO: '
\echo 'INFO: '
\echo 'INFO: 2...'
\echo 'INFO: '
SELECT consulta.data, consulta.hora
FROM consulta
WHERE consulta.valor =
( SELECT MAX( consulta.valor )
FROM consulta )
\echo 'INFO: Data hora valor'
\echo 'INFO: "2002-03-21" "09:00:00"122.0000'
\echo 'INFO: '
\echo 'INFO: '
\echo 'INFO: '
\echo 'INFO: '
\echo 'INFO: '
\echo 'INFO: 3...'
\echo 'INFO: '
Run Code Online (Sandbox Code Playgroud)