是否可以检查 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 表是否具有主键 [重复]的主要内容,如果未能解决你的问题,请参考以下文章