sql - 获取主键中列名的通用 SQL 方法是什么?

标签 sql

我不知道我的代码是否适用于 MySQL、PostgreSQL、MS SQL、IBM db2、Oracle 或什么。那么有没有通用的方法来识别表上的主键?或者至少是一种适用于 3 或 4 个 RDBMS 或在某种标准文件中描述的方法,因此我可以声称我的代码适用于标准情况?

最佳答案

我同意对于所有数据库没有真正通用的方法,您可以尝试使用 INFORMATION_SCHEMA这应该让你有所收获。

SELECT pk.TABLE_NAME, c.COLUMN_NAME primary_key
  FROM information_schema.table_constraints pk 
  JOIN information_schema.key_column_usage c
    ON c.table_name = pk.table_name 
   AND c.constraint_name = pk.constraint_name
 WHERE constraint_type = 'primary key'

关于sql - 获取主键中列名的通用 SQL 方法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16809882/

相关文章:

mysql - SQL/mysql - 如何显示 1 个表中具有不同值的两列

c# - 使用ServiceStack OrmLite删除其他表中符合条件的行

mysql - 按行之间的差异获取前 5 个结果

mysql - 使用外键跟踪新关系中的所有权

sql - PostgreSQL - 消除类似的行,但仅限于某些值

mysql - 具有相同 id 的多条记录通过 Cursor 将其设为 NULL

mysql - Rails 3 作用域与 SQL 返回空白结果

python - Odoo E8103 : SQL injection risk. 如果可以,请使用参数

mysql - 使用 INSERT IGNORE 防止重复条目

mysql - SQL 查询。需要对两列中的值的组合进行 GROUP BY