Найдите связанные столбцы между двумя таблицами
Представьте, у вас есть две таблицы. И в каждой таблице много столбцов.
Я не создавал базу данных, поэтому я действительно не знаю, какие столбцы связаны. Одна проблема заключается в том, что между двумя таблицами нет одного и того же имени столбца, поэтому я не могу понять по имени столбца.
Как найти столбец, связанный с двумя разными таблицами?
1 ответ
Решение
Если между таблицами есть внешние ключи, то вы можете найти связь между ними. Для этого вы можете позвонить\d
в таблице и просмотрите внешние ключи, связанные с ее столбцами. Без явных внешних ключей невозможно определить взаимосвязь между таблицами, кроме как поговорить с разработчиками и / или лицами, принимающими технические решения.
Пример того, как отношение внешнего ключа отображается в psql
:
postgres=# alter table pgbench_accounts add constraint "pgb_accounts_branches_fk" foreign key (bid) references pgbench_branches (bid);
ALTER TABLE
postgres=# \d pgbench_accounts
Table "public.pgbench_accounts"
Column | Type | Collation | Nullable | Default
----------+---------------+-----------+----------+---------
aid | integer | | not null |
bid | integer | | |
abalance | integer | | |
filler | character(84) | | |
Indexes:
"pgbench_accounts_pkey" PRIMARY KEY, btree (aid)
Foreign-key constraints:
"pgb_accounts_branches_fk" FOREIGN KEY (bid) REFERENCES pgbench_branches(bid)
postgres=# \d pgbench_branches
Table "public.pgbench_branches"
Column | Type | Collation | Nullable | Default
----------+---------------+-----------+----------+---------
bid | integer | | not null |
bbalance | integer | | |
filler | character(88) | | |
Indexes:
"pgbench_branches_pkey" PRIMARY KEY, btree (bid)
Referenced by:
TABLE "pgbench_accounts" CONSTRAINT "pgb_accounts_branches_fk" FOREIGN KEY (bid) REFERENCES pgbench_branches(bid)
postgres=#