是否可以检查 Informix 表是否具有主键 [重复]

Posted

技术标签:

【中文标题】是否可以检查 Informix 表是否具有主键 [重复]【英文标题】:Is it possible to check if an Informix table has a primary key [duplicate] 【发布时间】:2015-10-19 14:50:27 【问题描述】:

是否可以(通过查询)检查 Informix 表的主键是否存在?我必须通过 javax.persistence 的 EntityManager 从 Java 代码中检查这一点。

【问题讨论】:

是的,在 Informix 中确定一个表是否有主键当然是可能的(参见perdomoff 在他的answer 中引用的question。你如何使用javax.persistence EntityManager 是一个单独的问题,需要比我更多的 Java 知识。 【参考方案1】:

Chris311,请参阅下面的链接,其中提出并解决了类似问题:

Query to check if primary key exists on the table in informix

用户首先查找 PK 的索引名称(pk_idx 列) 然后,检查索引列(查找与 PK 约束相同的索引名称)。

【讨论】:

【参考方案2】:

任何数据库都支持检索有关数据库架构本身的信息和/或允许更改它的特殊命令。

例如 mysql 支持命令SHOW CREATE TABLE(参见here)。 Informix 版本的类似命令称为info。详情请看以下讨论:Informix SQL - List all fields & tables

Java 持久化 API 可以运行当前数据库支持的任何命令,包括管理命令,因此您也可以运行info 命令。我建议您从使用针对您的数据库运行命令的任何 UI 或命令行工具开始使用此命令。一旦您的命令有效,请尝试从 java 运行它。

【讨论】:

请注意,只有 DB-Access 程序可以理解 Informix INFO 语句。它将 INFO 语句转换为针对系统目录的一个或多个查询。

以上是关于是否可以检查 Informix 表是否具有主键 [重复]的主要内容,如果未能解决你的问题,请参考以下文章

是否可以同时更新 SQL Server 数据库和 Informix 数据库?

informix错误代码小结

informix错误代码小结

MVC问题汇总

Informix - 如果存在则删除临时表

如何检查另一个表中是不是存在主键值?