首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >重命名/替换主键以跨架构进行查询

重命名/替换主键以跨架构进行查询
EN

Stack Overflow用户
提问于 2021-04-26 20:22:37
回答 1查看 40关注 0票数 1

目前,对于处理过的钙成像数据,我有两种不同的模式,在这些模式中,我使用了两种不同的预处理方法。我所要做的工作的主要目标是使用来自1个模式的源作为引用,并在第二个模式中提取相应的源。我已经完成了源匹配,这样我就可以知道schema1中的每个神经元在schema2中对应的神经元是什么。

在schema1中的表中,每个神经元都有一个名为neurID的整数主键和一个外键(schema2ID),其中包含schema2中该神经元的对应主键。我遇到的问题是,在schema2中,每个神经元的主键也称为neurID,因此这与schema1中的神经元不同(例如,schema1中的神经元,neurID = 1,schema2ID = 15,对应于schema2中的神经元,neurID = 15,schema1ID = 1)。

理想情况下,我想要做的是,一旦我在schema2中有了一个模式中的所有神经元,我就可以用外键schema2ID替换它们的主键neurID,这样我就可以使用它来获取schema2中的相应神经元(因为schema1中的schema2IDneurID schema2主键相同)。有办法用这种方式重命名主键吗?或者,通过创建新表,我还可以使用其他一些讨厌的方法吗?

(请注意,由于我在每个模式中都有另一个主键'targID‘,这就更加复杂了,对于每个模式来说,索引并不意味着模式之间的相同。)

我真的很感激任何建议,因为我被困住了。也很高兴通过DMs等方式更直接地显示代码。谢谢!

EN

回答 1

Stack Overflow用户

发布于 2021-04-26 20:48:02

在您的情况下,也许使用DataJoint的投影运算符(.proj())会有所帮助。.proj()操作可用于重命名属性,请参阅https://docs.datajoint.io/python/queries/08-Proj.html?highlight=project

以上面的例子为例,您可以尝试如下:

代码语言:javascript
运行
复制
schema1_table * schema2_table.proj(schema2ID='neurID')

或者相反的情况也会发生:

代码语言:javascript
运行
复制
schema1_table.proj(schema1ID='neurID') * schema2_table
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/67273319

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档