I am confused - why does the "Add Only" option on an Import Definition require a primary key? This doesn't make much sense to me. The nature of this data extension in question doesn't necessitate the need for primary keys. The client will be sending incremental delta files to add to this data extension. Please, someone explain this!! :) enter image description here

  • I would try to create a primary constraint like "SubscriberKey and Timestamp" (if you directly write into this dataextension, without a bulk insert) to conquer stuff like this, which will cannot create duplicates. And then tell TimeStamp that it should always insert the servers system time. Would that be valid solution? Sep 26, 2018 at 6:35
  • Hey @JohannesSchapdick perhaps. That would require going back to the client and having them put the new "Timestamp" column header into their data file (which the data could be blank, but if Timestamp is part of the composite key, then it needs to exist in the file, unfortunately).
    – Mike Marks
    Sep 26, 2018 at 13:47
  • It does not need to exist in the file if you make the marketing cloud set it for you per default. Field "MikeTimestamp" default value "current date" nullable "No" primary key. Sep 26, 2018 at 13:53
  • @JohannesSchapdick if I set this as a Primary Key, Not Nullable, when mapping the fields, it requires there to be a column header of that name, even if default value "current date" is set. It sucks, I know. Am I missing something?
    – Mike Marks
    Sep 26, 2018 at 14:00
  • 1
    You can define the mapping that no value relates to "MikeTimestamp" when you chose manual mapping. Sep 26, 2018 at 14:04

1 Answer 1


The functionality of "Add Only" import type is to add new records. For instance your DE contains 4 records already and now you are importing a file with 6 records(that file contains those 4 already existing records and 2 new records that you need to add in your DE). Now if the DE does not have a primary key, it will add duplicate records and you will end up having 10 records, but you needed just 2 newly added.

You can verify this by creating a DE containing a primary key. Create a record in that. Now if you have a file containing that record and few other records and if you try to import that file, it will insert only the new data and not that existing row for "Add only" import type.

SO for this, "Add Only" and "Add and Update Only" requires a DE to have primary key as many a times customers send updated files containing old and newly added rows where we want only newly added rows in our DE.

But to cater to the other cases where a new file is given by customer (example: date wise data), in those cases we can use "Overwrite" option.

  • 2
    This is how Salesforce has implemented this functionality. It does not really matter what your "point of view" is because that is how it works.
    – Krati Garg
    Sep 26, 2018 at 6:35
  • Also, please refer this link to get a better understanding on this: help.salesforce.com/…
    – Krati Garg
    Sep 26, 2018 at 6:36
  • 2
    @JohannesSchapdick - I disagree and think this answer is not only helpful, but informative on how SFMC has set up their users data management. This forum is aimed more at facts, truths and learning/teaching - not opinions or complaints and certainly not condescension on others answers. Please keep that in mind as you comment or answer here. Sep 26, 2018 at 13:33

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .