Difference between UniqueID and ExternalID?
UniqueID field Case :-
This is a setting for the field that will prevent you from using the same value in multiple records for the unique field. So if I create a 5 character text field and make it unique, and I create a record with the value “12345″ i will not be able to create another record with that same value in the unique field. If i try to do so, I will get an error saying that the value is already in use.
Often, External Ids are set with the unique property so that the IDs will be unique to each record.
ExternalID field Case:-
This is a field that usually references an ID from another (external) system. For instance, if the customer has an Oracle Financials system that they will be linking with salesforce.com, it may be easier for them to be able to refer to the Oracle ID of account records from within salesforce. So they would create an external ID in salesforce.com and they would load the Oracle ID into that field for each account. They can then refer to that ID field, rather than the salesforce.com id.
Additionally, if you have an external ID field, the field becomes searchable in the sidebar search. You also can use the upsert API call with the extenal ID to refer to records.
You can have multiple records with the same external ID or (though it is not recommended, as it will defeat the purpose of the external id).
External Id available for Text, Number and Email field types.
External Id is also used in upsert operations.
1.If external id is absenor not matched then insert happens.
2.If external id matched once then record will be updated.
3.If external id is matched multiple times then error occurs.