如何生成一个唯一的ID值

空间对象的数据库表包括事务表(BUSINESS TABLE),要素表(FEATURE TABLE),空间索引表(SPATIAL INDEX TABLE)。

事务表(BUSINESS TABLE)中有一个字段OBJECTID,我给了它一个UNIQUE CONSTRAINT,那么在数据入库的时候如何产生唯一的ID值呢,这涉及后面查询编辑操作。因为我们对测量的数据是要进行分幅分层的,原先可能具有相同ID值的对象会被导入到一个数据库表中,这是在执行SE_STREAM_EXCUTE时会产生错误,返回值为-51。

我实现的方法是这样的,建立一个IDINFO的属性表,包括表名、最大ID值……字段,对象入库时,先查询IDINFO表,如果IDINFO还未含有当前表名,则返回ID值为0,插入一个新记录,最大ID值为1;如果IDNFO已经含有当前表名,则返回最大ID值记录,并更新记录,最大ID值加1。

你可能感兴趣的:(数据库,Stream,table)