PostgreSQL
 sql >> база данни >  >> RDS >> PostgreSQL

В psql защо някои команди нямат ефект?

Изявленията завършват с точка и запетая.

В 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. Това е удобно, когато искате (да речем) да видите дефиниция на таблица, докато пишете изявление, но е малко объркващо за новодошлите.

Колкото до допълнителните ви въпроси:

  1. Ако има команда "изчистване на екрана" в psql за Windows още не съм го намерил. В Linux просто използвам control-L, както всяка друга програма за четене. В Windows \! cls ще работи.

  2. DDL в PostgreSQL е транзакционен. Можете да BEGIN транзакция, издаване на DDL и COMMIT сделката, за да влезе в сила. Ако не направите своя DDL в изрична транзакция, той влиза в сила незабавно.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Топ 5 PostgreSQL инструменти за наблюдение на заявки

  2. Как да изберете идентификатор с група за максимална дата по категория в PostgreSQL?

  3. Колоната 'mary' не съществува

  4. PostgreSQL IN оператор с слаба производителност на подзаявката

  5. Разделете върнатия от функцията запис на множество колони