I have a `after insert` trigger on `Account` which inserts another object (`Places`) after checking Account Shipping fields with address fields of existing `Places` records. If nothing is found it inserts new `Places` records. **When I insert `Accounts` using Dataloader with few duplicates in Excel sheet, even though I have no duplicates existing (Database) in my `Places` object, it inserts duplicate `Places` due to `Account` duplicates in Excel sheet.** trigger InsertUniquePlaces on Account (after insert,after update) { List<places__c> Places= new List<places__c>(); Map<Id,Account> Accounts = new Map<Id,account>(); Map<String, Id> recordTypeMap = new Map <String,Id>(); List<String> street = new List<String>(); List<String> city = new List<String>(); List<String> state = new List<String>(); List<String> zipCode = new List<String>(); List<String> country = new List<String>(); set<Id> accountIds = new set<Id>(); // After Insert if(trigger.IsInsert&&trigger.IsAfter) { accounts = Trigger.newMap; for(Account ac : accounts.Values()) { street.add(ac.ShippingStreet); city.add(ac.ShippingCity); state.add(ac.ShippingState); zipCode.add(ac.ShippingPostalCode); country.add(ac.ShippingCountry); } List<Places__c> ExistingPlaces = new List<places__c>(); ExistingPlaces=[SELECT ID,Name,Street__c,City__c,State__c, Zip__c,Country__c FROM Places__c WHERE Street__c IN : street and City__c IN : city and State__c IN : state and Zip__c IN : zipCode and Country__c IN : country limit 50000]; if(ExistingPlaces.size()==0) { // If nothing Matched, Direct Insert a Loacation Record for accounts in Trigger.new for(Account acc : accounts.Values()) { Places__c location = new Places__c( name = acc.Name, Street__c = acc.ShippingStreet, City__c = acc.ShippingCity, State__c = acc.ShippingState, Zip__c = acc.ShippingPostalCode, Country__c = acc.ShippingCountry, Location_Account__c=acc.id; ); Places.add(location); } } if(locations.size()>0 ) { Database.Insert(Places); //Upsert(Places); } **Is there any way to avoid duplicate records with repeated shipping address (no more name comparsion) wise at below stage before hitting database** if(locations.size()>0 ) { Database.Insert(Places); //Upsert(Places); } I dont want to Insert duplicate places even though Inserted Accounts has Duplicates. Please any one suggest me. Thanks in advance