Do fact tables have a user-defined primary key?
Up to Version 7.5, no. Up to this version, fact tables have a SYSKEY rather than a user-defined primary key. The primary key (and consequently the secondary indices) would become too large because the key would have to be created from the fields of all the dimension tables. In addition, fact tables (‘F’) that are not compressed cannot contain duplicate records – these would be rejected with a ‘Duplicate key’ error if a primary key were defined. As of the MaxDB BW Feature Pack (Version 7.6), it makes sense to create a primary key in fact tables. In this version, the primary key is created from a time dimension and the SYSKEY, not from the fields of all the dimension tables. For more information, see Note 1040431 FAQ: MaxDB BW Feature Pack.