Take the 2-minute tour ×
Database Administrators Stack Exchange is a question and answer site for database professionals who wish to improve their database skills and learn from others in the community. It's 100% free, no registration required.

I am learning about database, I need to know something about the foreign key in MySQL.

Consider the following two tables.

  1. UserGroupType.
  2. UserGroup.

UserGroupType:

enter image description here

UserGroup:

enter image description here

In this table the foreign key is defined as follows,

foreign key (GroupType_id) references UserGroupType(GroupType_id)

I just want to know whether the name of the field in UserGroup can be changed? consider the following altered statement.

GroupType: enter image description here

foreign key (Type_id) references UserGroupType(GroupType_id)

Is it necessary that both the field names must be same?

How to set the default value for datetime?

Thanks in advance, sorry if it is very basic things.

share|improve this question
1  
No, it's not necessary for the two column names to be identical. But it's good practice. When you'll have lot of tables and queries with more than 1-2 joins, it helps to have the same name to join. –  ypercube Jul 12 '13 at 10:18

1 Answer 1

up vote 1 down vote accepted

foreign key would have a different name from the primary key it is referring to, but necessarily , their data type and other attributes should be the same.
for example , if one is INT(10) unsigned the other should be defined the same.

but sometimes it is a good practice to name them similarly in complex queries. for example when you want to JOIN the relating tables, you can use the syntax :

userGroupType INNER JOIN userGroup USING (GroupType_id)

instead of :

userGroupType INNER JOIN userGroup ON userGroupType.GroupType_id = userGroup.GroupType_id
share|improve this answer

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.