Вам действительно нужно, чтобы они были инкрементными?Разве вы не можете использовать UUID?
Я не понимаю, зачем вам нужен dim_table.
Если вы работаете со звездной схемой, это то, как вы можете заставить ее работать
Fact_table
----------
time_id character(36)
geographic_id character(36)
measure whatyouwant
Dim Time
--------
time_id character(36) (That matches the time_id inside your fact table)
...
...
Dim Geogrphic
-------------
geographic_id character(36) (that matches the geographic_id inside your fact_Table)
....
....
Когда вы заполняете таблицы измерений, генерируется uuid для ваших измерений.Когда вы заполняете свою таблицу фактов, ищите таблицы измерений, чтобы получить uuid, связанный с этим значением.
Редактировать: Я думаю, что это может помочь вам http://dev.mysql.com/doc/refman/5.0/en/insert-on-duplicate.html