gpt4 book ai didi

sql - Maximo 中的 ASSET 表是否有主键?

转载 作者:行者123 更新时间:2023-12-02 14:47:19 25 4
gpt4 key购买 nike

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 表上没有主键:

enter image description here

最佳答案

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;

您还会为每个持久对象找到一个唯一索引,该索引绑定(bind)到单个 BIGINT 属性,该属性由 Oracle 中的序列对象填充。对应的属性通常是表名后跟“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);

关于sql - Maximo 中的 ASSET 表是否有主键?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58204992/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com