Migrating data from public schema to table in another schema in postgreSQL - postgresql

I need to migrate data from multiple tables in the db public schema to one table in a schema called fs. Then I need to match the migrated data, now is the fs schema, to data in a different table in the fs schema.
Would something like this work?
INSERT INTO targetTable
SELECT * FROM [sourceserver].[sourcedatabase].[dbo].[sourceTable]
Very new to postgreSQL and SQL in general, so please let me know if clarification is necessary. Thank you.

This will work
INSERT INTO Table2 (<columns>)
SELECT <columns>
FROM schema.Table1

Related

postgresql combine data from different schema tables if that schema exists

Need to create a view based on these conditions:
There are several schemas and tables in the db
We will create a union from tables from certain schemas
If the schema don't exist we should skip that schema from our union
It is given that if schema exists the associated table definitely exists, no need to check that.
Query should not give error if any of the schema is not created.
At the time of running query any schema could be missing that is not known until query is run.
So far creating the view using unions is simple enough but I'm not able to figure out what is the best way to include that condition check for schema existence, I'm sorry if this is trivial or duplicate question, any advice or reference could be helpful.
Thanks,
CJ
In postgresql we can use if schema exists:
SELECT schema_name FROM information_schema.schemata WHERE schema_name = 'name';

Postgres - Find only by UUID

I've got PostgreSQL DB with multiple schemas and tables in that schemas. Every row in table have PRIMARY UUID like "Ref_Key" => "41bf3b1e-91f0-491c-a6bd-c48a17e7c252"
Is it possible to find row only by it UUID, without specifying schema and table?
No, that is not possible. You can only query tables that explicitly appear in the FROM clause of a SELECT statement.

create (or copy) table schema using postgres_fdw or dblink

I have many tables in different databases and want to bring them to a database.
It seems like I have to create foreign table in the database (where I want to merge them all) with schemas of all the tables.
I am sure, there is a way to automate this (by the way, I am going to use psql command) but I do not know where to start.
what I have found so far is I can use
select * from information_schema.columns
where table_schema = 'public' and table_name = 'mytable'
I added more detail explanation.
I wanted to copy tables from another database
the tables have same column names and data type
using postgres_fdw, I needed to set up a field name and data type for each tables (the table names are also same)
then, I want to union the tables have same name all to have one single table.
for that, I am going to add prefix on table
for instance, mytable in db1, mytable in db2, mytable in db3 as in
db1_mytable, db2_mytable, db3_mytable in my local database.
Thanks to Albe's comment, I managed it and now I need to figure out doing 4th step using psql command.

postgres, cannot see table data after migration

After I've migrated a table from another database I cannot see the data in the postgres table. With \d I can see the schemas and tables but with a select using . I cannot see the data.
The table is in schema public, I try:
select * from public.ACCOUNTS;
select * from ACCOUNTS;
As I an new to postgres, excuse my simple questions, I'm sure I oversee the obvious.
BTW, having tried the 'first steps' guide on another page where a schema, user and table is created I did not have this problem.
I have faced this problem when using sequelize-cli Migrations, for some reason
you have to query the data from the Public Schema, Try this
select * from Public."Accounts"

Oracle sql query to create new table in S1 schema by copying from S2 Schema

Oracle sql query to create new table in S1 schema by copying from S2 Schema
CREATE TABLE HR.EMP_DEPT LIKE TARGET.EMPLOYEES_DEPT
INSERT INTO HR.EMP_DEPT SELECT * FROM TARGET.EMPLOYEES_DEPT
My guess is that you want
CREATE TABLE s1.table_name
AS
SELECT *
FROM s2.table_name
That will create an s1.table_name table with the same columns and data types as the s2.table_name table. It will not, however, create the same set of indexes, constraints, or triggers that exist on the s2.table_name table. You could use the dbms_metadata package to extract the DDL for those objects and modify the DDL to create those dependent objects on the s1 table. Or you could use the export and import utilities (classic or DataPump) to export the table from s2 and import it into the s1 schema.