To clarify for those coming here years later, PostgreSQL works very differently than MySQL. If you're used to using HeidiSQL for MySQL, this is probably not obvious:
HeidiSQL can only connect to one PostgreSQL database at a time.
You specify which database you want to connect to via the "Database" field in the session manager before connecting to the server.
Once connected you'll most likely always see the same thing:
information_schema
pg_catalog
pg_toast
public
These are pg schemas, not databases like they would be if you were connecting to a MySQL server.
You should normally create and manage your custom tables in the public schema. The other schemas hold details about this database (and maybe others?).
User Management:
Also, the user management for PostgreSQL is plain broken in HeidiSQL. You'll have to use the raw commands. Users are called 'roles' in PostgreSQL. Here are a few links:
- Official Reference on Roles: www . postgresql . org/docs/current/user-manag.html
- Official Reference on Grants: www . postgresql . org/docs/current/sql-grant.html
- A Helpful Cheat Sheet: linuxize . com/post/postgresql-user-management
PostgreSQL offers quite a bit more granular access (e.g., per table grants), which may be partly why HeidiSQL's user manager hasn't been updated to support PostgreSQL yet.