Изявленията завършват с точка и запетая.
В psql , натискането на enter без точка и запетая продължава оператора на следващия ред, добавяйки написаното от вас към буфера на заявката, вместо да го изпълнява. Ще забележите, че подканата се променя от dbname=> към dbname-> за да посочите, че сте на линия за продължаване.
regress=> DROP TABLE sometable
regress-> \r
Query buffer reset (cleared).
regress=> DROP TABLE sometable;
ERROR: table "sometable" does not exist
regress=>
Забележете как след като натисна enter без точка и запетая, подканата се променя на regress-# и не се предприемат никакви действия. Няма таблица sometable , така че ако изявлението се е изпълнило, ще бъде докладвана грешка.
След това вижте използването на \r на следващия ред? Това изчиства буфера на заявката. Забележете, че подканата се променя обратно на regress=# когато буферът се изчисти, тъй като вече няма буфериран частичен израз.
Това показва как изразите могат да бъдат разделени на редове:
regress=> DROP TABLE
regress-> sometable
regress-> ;
ERROR: table "sometable" does not exist
Объркващото е, че psql обратно наклонена черта команди като \d са завършвани с нов ред, а не с точка и запетая, така че правят стартирайте, когато натиснете enter. Това е удобно, когато искате (да речем) да видите дефиниция на таблица, докато пишете изявление, но е малко объркващо за новодошлите.
Колкото до допълнителните ви въпроси:
-
Ако има команда "изчистване на екрана" в
psqlза Windows още не съм го намерил. В Linux просто използвам control-L, както всяка друга програма за четене. В Windows\! clsще работи. -
DDL в PostgreSQL е транзакционен. Можете да
BEGINтранзакция, издаване на DDL иCOMMITсделката, за да влезе в сила. Ако не направите своя DDL в изрична транзакция, той влиза в сила незабавно.