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? – Johannes Schapdick Sep 26 '18 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 '18 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. – Johannes Schapdick Sep 26 '18 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 '18 at 14:00
  • 1
    You can define the mapping that no value relates to "MikeTimestamp" when you chose manual mapping. – Johannes Schapdick Sep 26 '18 at 14:04

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.

| improve this answer | |
  • 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 '18 at 6:35
  • Also, please refer this link to get a better understanding on this: help.salesforce.com/… – Krati Garg Sep 26 '18 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. – Gortonington Sep 26 '18 at 13:33

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

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