【问题标题】:Does the ASSET table in Maximo have a primary key?Maximo 中的 ASSET 表是否有主键?
【发布时间】:2019-10-02 15:47:16
【问题描述】:

I'm trying to determine 如果 Maximo 7.6.1.1 中的 asset 表有主键 (query source):

SELECT cols.table_name, cols.column_name, cols.position, cons.status, cons.owner
FROM all_constraints cons, all_cons_columns cols
WHERE cols.table_name = 'ASSET'
AND cons.constraint_type = 'P'
AND cons.constraint_name = cols.constraint_name
AND cons.owner = cols.owner
ORDER BY cols.table_name, cols.position;

[0 records returned]

我很惊讶查询没有在这个表中找到主键。

Maximo中的ASSET表有主键吗?还是查询有问题?


编辑:

现在我查看了 Toad 中的表属性,我发现它明确指出asset 表上没有主键:

【问题讨论】:

  • 根据您最近提出的其他问题,我认为您正在尝试构建与我在美国多个城市实施的相同的系统。通过 MIF 将所有 GIS 数据连接到 Maximo 的繁重工作。
  • @Milton 这很有趣。很高兴知道我并不孤单!这是一个想法列表:Things I wish I could do in Spatial
  • 是的。我读了那个。我们在我认为的路线上做所有这些,但有例外。另外,不在空间中。 Joao 没有回复你,我很惊讶。我现在已经实施了 4 次 Spatial,每次我们最终到达您与客户所在的位置。您已经确定了自己的工作流程,但未将其设置为您确定的工作流程的一部分。
  • @Milton 你说的“路线异常”是什么意思
  • 路线对不同的人有不同的含义。我有在 GIS 集成中运行的 Maximo 路线。它们基本上是停靠点列表。它们不会像旅行推销员问题那样自动排序。我们还集成了逐个文本,但没有集成导航。似乎当有人说路线时,他们对路线的理解总是与我不同。

标签: sql oracle primary-key oracle12c maximo


【解决方案1】:

Maximo 不使用数据库 PK 功能,而是使用不同的唯一索引和可应用的复合 PK,您可以通过查看 MAXATTRIBUTE.PRIMARYKEYCOLSEQ 字段找到它们。

ASSET 的示例 SQL,应用主键为 SITEID、ASSETNUM:

select ATTRIBUTENAME,PRIMARYKEYCOLSEQ from maxattribute where primarykeycolseq is not null and objectname='ASSET' ORDER BY PRIMARYKEYCOLSEQ;

您还将为每个持久对象找到一个唯一索引,该索引绑定到由 Oracle 中的序列对象填充的单个 BIGINT 属性。对应的属性通常是表名后跟“ID”。

示例: 对于 WORKORDER,该属性是 WORKORDERID。你可以通过这样的查询找到索引:

select * from maxsysindexes where tbname='WORKORDER' and required=1;

您可以通过查看使用诸如 Oracle SQL Dev 之类的工具或使用如下查询找到的索引来识别属性:

SELECT COLNAME FROM MAXSYSKEYS WHERE IXNAME=(select NAME from maxsysindexes where tbname='WORKORDER' and required=1);

【讨论】:

  • 谢谢!当您说 "applicative" 时,您只是表示约束是在应用程序中执行的,而不是在数据库中?
  • 约束将由数据库应用,因为键将绑定到唯一索引。我的意思是应用程序在内部将其用于 PK 目的。 PRIMARYKEYCOLSEQ 字段说明如下: "如果该字段中存在值,则表示该列被业务对象组件在构造动态 where 子句以更新或删除数据库中的行时使用。Primary 列中的值必须是连续的、唯一的并且大于零。”
【解决方案2】:

Assetnum 是关键字段。

Maximo 使用了非常少的数据库扩展功能,而是使用 MBO(maximo 业务对象/java 后端)来完成对关键字段和关系的所有处理和控制。在 maximo 中,您可以通过查看系统配置 > 平台配置 > 数据库配置并打开所需的表来找到关键字段。那里也定义了关系。

【讨论】:

  • 很有趣,Maximo 没有主键。 ESRI 地理数据库中的版本化表也没有。我刚刚意识到,我从未真正在拥有真正主键的企业系统中工作过。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2021-11-18
  • 2011-01-11
  • 2019-07-08
  • 2011-05-18
  • 1970-01-01
  • 2014-02-05
  • 1970-01-01
相关资源
最近更新 更多