can foreign key take role of primary key?
Answers were Sorted based on User's Feedback
Answer / gaurav
Yes. This situation occurs in one-to-one relationships.
For example:
create table Table1
( T1_Id integer not null primary key
, T1_Data varchar(9) not null
)
create table Table2
( T2_Id integer not null primary key
, T2_Data varchar(37) not null
, foreign key (T2_Id) references Table1 (T1_Id)
)
Why would someone design two tables like this? If it's a
one-to-one relationship, couldn't you just include T2_Data
in Table1? Yes, you could, although then you would also need
to allow T2_Data to be NULL, if not every T1_Id has a
matching T2_Id—in this case it's actually a
one-to-zero-or-one relationship.
If it's a true one-to-one relationship, where every T1_Id
has a matching T2_Id, then you could combine them without
NULLs. Then the only reason why you might want separate
tables would be if T2_Data were (a) infrequently queried,
and (b) so large that it would result in many fewer physical
rows on a physical database page, which would imply poorer
performance for queries that used only T1_Data.
| Is This Answer Correct ? | 10 Yes | 0 No |
Answer / @panwar
yes but for same table and if you use foriegn key as a
primary key for same table then there will be no benifit of
master-detail concept for it relation.
and if you follow the Master_detail concept then you can't
use as primary key for another table.
| Is This Answer Correct ? | 9 Yes | 2 No |
Answer / radhakrishnan vaithilingam
no,foreign key is possible for null value in column.
this rules not matching with PK.
| Is This Answer Correct ? | 2 Yes | 1 No |
Answer / suresh murugadass
Yes. It is possible in this scenario. Here table has a
self join. Since emp_id represents both emp_id and mgr_id
this is possible a primary key to behave as foriegn key
create table emp(
emp_id int not null primarykey,
emp_name varchar2(40) not null,
mgr_id int not null foriegn key(mgr_id) references emp(emp_id)
}
| Is This Answer Correct ? | 2 Yes | 2 No |
Explain some DBCC commands?
How to modify an existing stored procedure in ms sql server?
Which tcp/ip port does sql server run on? How can it be changed?
Differences between logshipping and mirroring
What are the difference between primary key and unique key? : sql server database administration
How to sort query output in descending order in ms sql server?
When to use Inner join & when to use subquery?
How to avoid cursors?
3 Answers CarrizalSoft Technologies, HP,
Why would you use sql agent?
How to add a new column to an existing table with "alter table ... Add" in ms sql server?
Do you know what is a linked server in sql server?
What is the difference between getdate and sysdatetime?
Oracle (3259)
SQL Server (4518)
MS Access (429)
MySQL (1402)
Postgre (483)
Sybase (267)
DB Architecture (141)
DB Administration (291)
DB Development (113)
SQL PLSQL (3330)
MongoDB (502)
IBM Informix (50)
Neo4j (82)
InfluxDB (0)
Apache CouchDB (44)
Firebird (5)
Database Management (1411)
Databases AllOther (288)