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.


enter image description here


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.

  • 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. Commented Jul 12, 2013 at 10:18

1 Answer 1


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

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

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