Maximo 中的 ASSET 表是不是有主键?

Posted

技术标签:

【中文标题】Maximo 中的 ASSET 表是不是有主键?【英文标题】: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 路线。它们基本上是停靠点列表。它们不会像旅行推销员问题那样自动排序。我们还集成了逐个文本,但没有集成导航。似乎当有人说路线时,他们对路线的理解总是与我不同。 【参考方案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 地理数据库中的版本化表也没有。我刚刚意识到,我从未真正在拥有真正主键的企业系统中工作过。

以上是关于Maximo 中的 ASSET 表是不是有主键?的主要内容,如果未能解决你的问题,请参考以下文章

Sql Server中的游标最好只能用于有主键或唯一键的表

SQL中有主外键的两表到底那这是主表

sql(sqlserver) join 的表是否必须有主键?

用SQL语句创建一个临时表,建立主键约束,并验证主键约束是不是可以被修改。

主键约束

做java项目时的主键和外键是啥啊?