由于最近的issues with the Google Apps Script ScriptDB,我们最终在ScriptDB中找到了许多重复记录。
我们有一个从外部系统检索数据的应用程序,如果该数据尚不存在,则存储在ScriptDB中。但是由于ScriptDB最近的问题,检查存在是否失败。我们的脚本不断添加相同的数据。我们怎样才能清理复制品?我们只想要每个数据记录的一个副本。
答案 0 :(得分:1)
由于那个appscript错误,我不得不重新创建许多bds。 我删除了整个bd并手动重新创建它,因为我不相信可能仍然损坏的条目。 如果它不大,您可以将其转储到电子表格上并手动删除它们,然后重新创建bd。 它不仅仅是重复,你也可以拥有类似的对象,因为它们被重新创建,之后只有一个被更新。
答案 1 :(得分:1)
如果您为数据库中的条目分配了自己的唯一ID,则可以遍历所有可能的ID,以查找具有多个条目的ID。我不打算编写整个代码,但这是一个大致的概述:
1. Generate an array of all possible IDs
2. For each ID in array, query ScriptDB for items with that ID
3. If results.length > 1, remove the extras
4. Goto 2
5. Finish
当然,这需要超过6分钟,需要100多条记录,因此您需要一些代码来保存/加载状态。我使用ScriptProperties来保存我在数组中的位置。然后我有一个函数来确定我是否已达到5.5分钟,此时我停止以避免“超出最大执行时间”错误。
如果您还没有使用唯一ID,那么添加到数据库保存功能会更加逻辑,以防止将来出现这种情况。