# PostgreSQL ## Interactively create a user (Is a shell command) ``` $ createuser --interactive --pwprompt Enter name of role to add: Enter password for new role: Enter it again: Shall the new role be a superuser? (y/n) n Shall the new role be allowed to create databases? (y/n) n Shall the new role be allowed to create more new roles? (y/n) n ``` ## Create a database (Is a shell command) Also sets the owner ``` $ createdb -O ``` ## Commands for the psql shell ``` \l list databases \c connect to a database \dt list tables \d describe table \df list functions \dy list trigger ``` ## Find and kill query process To get a list of all currently running query process (like `SHOW FULL PROCESSLIST` from MySQL) enter: ```sql SELECT * FROM pg_stat_activity; ``` If you know the name of the database you can filter with it like so: ```sql SELECT * FROM pg_stat_activity WHERE datname= ''; ``` With the entry of the `pid` column you can terminate or kill the process: ```sql SELECT pg_cancel_backend(); # Stop gracefully SELECT pg_terminate_backend(); # Kill ``` ## View locks ```sql SELECT * FROM pg_locks; ```