Maximo 中的 ASSET table 是否有主键?
Does the ASSET table in Maximo have a primary key?
I'm trying to determine if the asset
table in Maximo 7.6.1.1 has a primary key (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]
令我惊讶的是查询在此 table 中没有找到主键。
Maximo中的ASSETtable是否有主键?还是查询有问题?
编辑:
现在我查看 Toad 中的 table 属性,我发现它 清楚地指出 asset
table:
Assetnum 是关键字段。
Maximo 使用了很少的数据库扩展功能,而是使用 MBO(maximo 业务对象/java 后端)来处理和控制关键字段和关系。在 maximo 中,您可以通过查看系统配置> 平台配置> 数据库配置并打开所需的 table 来找到关键字段。那里也定义了关系。
Maximo 不使用数据库 PK 功能,而是使用不同的唯一索引和应用复合 PK,您可以通过查看 MAXATTRIBUTE.PRIMARYKEYCOLSEQ 字段找到它们。
示例 SQL 对于 ASSET,适用的主键将是 SITEID,ASSETNUM:
select ATTRIBUTENAME,PRIMARYKEYCOLSEQ from maxattribute where primarykeycolseq is not null and objectname='ASSET' ORDER BY PRIMARYKEYCOLSEQ;
您还会为每个持久对象找到一个唯一索引,该索引绑定到单个 BIGINT 属性,该属性由 Oracle 中的序列对象填充。相应的属性通常是 table 名称后跟 "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);
I'm trying to determine if the asset
table in Maximo 7.6.1.1 has a primary key (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]
令我惊讶的是查询在此 table 中没有找到主键。
Maximo中的ASSETtable是否有主键?还是查询有问题?
编辑:
现在我查看 Toad 中的 table 属性,我发现它 清楚地指出 asset
table:
Assetnum 是关键字段。
Maximo 使用了很少的数据库扩展功能,而是使用 MBO(maximo 业务对象/java 后端)来处理和控制关键字段和关系。在 maximo 中,您可以通过查看系统配置> 平台配置> 数据库配置并打开所需的 table 来找到关键字段。那里也定义了关系。
Maximo 不使用数据库 PK 功能,而是使用不同的唯一索引和应用复合 PK,您可以通过查看 MAXATTRIBUTE.PRIMARYKEYCOLSEQ 字段找到它们。
示例 SQL 对于 ASSET,适用的主键将是 SITEID,ASSETNUM:
select ATTRIBUTENAME,PRIMARYKEYCOLSEQ from maxattribute where primarykeycolseq is not null and objectname='ASSET' ORDER BY PRIMARYKEYCOLSEQ;
您还会为每个持久对象找到一个唯一索引,该索引绑定到单个 BIGINT 属性,该属性由 Oracle 中的序列对象填充。相应的属性通常是 table 名称后跟 "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);