PostgreSQL数据库中获取表主键名称

PostgreSQL数据库中获取表主键名称

一、如下表示,要获取teacher表的主键信息:

select pg_constraint.conname as pk_name,pg_attribute.attname as colname,pg_type.typname as typename from
pg_constraint  inner join pg_class
on pg_constraint.conrelid = pg_class.oid
inner join pg_attribute on pg_attribute.attrelid = pg_class.oid
and  pg_attribute.attnum = pg_constraint.conkey[1]
inner join pg_type on pg_type.oid = pg_attribute.atttypid
where pg_class.relname = ‘teacher‘
and pg_constraint.contype=‘p‘

二、效果图:

由图可知,主键约束的名称为pk_teacher,主键字段(列)为"id",主键字段的类型为:uuid。

——宋兴柱发表于2015年7月30日 济南中迪智业。    

时间: 2024-08-03 10:28:27

PostgreSQL数据库中获取表主键名称的相关文章

分布式数据库中全局唯一主键

[相关文章] <分布式数据库中全局唯一主键生成策略的设计与实现><activiti5.10解决分布式集群部署的主键问题><分布式环境下数据库主键方案><如何在高并发分布式系统中生成全局唯一Id><分布式环境下ID生成方法总结> <分布式环境下数据库主键方案> [ http://www.2cto.com/database/201309/243195.html ] 在只使用单数据库时,使用自增主键ID无疑是最适合的.但在集群.主从架构上时

c#中动态创建textbox并且从数据库中获取表中数据添加到textbox中

1 private void FormLugOther_Load(object sender, EventArgs e) 2 { 3 foreach (string str in FormLug.FieldListLug1) 4 { 5 try 6 { 7 Label label = new Label(); 8 label.Text = str; 9 this.tableLayoutPanel1.Controls.Add(label); 10 TextBox textbox = new Tex

是用JDBC从数据库中获取数据并以java对象返回

/** * * @param c * for example Person.class * @param primaryKeys * primaryKeys为主键,参数顺序和表中保持一致 如果id, name 为主键 类名为Person 则 getEntity(Person.class,1,"name") * @return */ public static Object getEntity(Class c, Object... primaryKeys) { PreparedState

通过 jdbc 分析数据库中的表结构和主键外键

文章转自:http://ivan4126.blog.163.com/blog/static/20949109220137753214811/ 在某项目中用到了 hibernate ,大家都知道 hibernate 是 ORM 框架,他是有能力根据实体生成数据库表的.我们在单元测试的时候用到了 dbUnit ,dbUnit 可以帮助我们在测试前把数据库的测试数据准备好,然后我们就利用现成的数据库环境测试,测试完成后需将数据库中的所有数据清除(为了不影响其他的单元测试),然后接着下一个测试.虽然已经

使用sql查询mysql/oracle/sql server/gp数据库中指定表的字段信息(字段名/字段类型/字段长度/是否是主键/是否为空)

1,根据数据库类型拼接不同URL /** * 根据类型不同拼接连接的URL * @param dbType 1:mysql.2:oracle.3:sql server.4:gp * @param ip * @param port * @param databaseName * @return*/ public static String getTestDbUrl(int dbType, String ip, String port, String databaseName){ String ur

数据库中一个表中如何设置两个主键

其实做法很简单. 在规定中数据库的唯一性中, 一张表中最多一个主键. 如果想设置两个主键,那么只有在联合的表中或者是讲两个字段联合起来, 例如 表student(sno, sname, age) 表course(cno, sname, grade) 主键具有唯一性,一张表最多一个主键, 但是可以将2个字段联合起来设置为主键. 1.选中表- 2.设计表- 3.选中字段(多个按住ctr) 4.右键设置为主键. 5.哦了,再去刷新一下.如果之前输入的数据会报错(很正常),是因为主键已经变了.只需要把数

通过jdbc获取数据库中的表结构

通过jdbc获取数据库中的表结构 主键 各个表字段类型及应用生成实体类 1.JDBC中通过MetaData来获取具体的表的相关信息.可以查询数据库中的有哪些表,表有哪些字段,字段的属性等等.MetaData中通过一系列getXXX函数,将这些信息存放到ResultSet里面,然后返回给用户.关于MetaData的说明网上也有不少,这里我只是从我自身学习的角度来记录一下简单使用JDBC以及获取数据表相关信息的方法. DatabaseMetaData dbmd = con.getMetaData()

数据库中创建表(包括创建主键,外键,非空列,唯一)

创建表(包括创建主键,外键,非空列,唯一) - PROS - 博客园 http://www.cnblogs.com/CodingArt/articles/1621921.html **************** 创建主键(三种方法) **************** 创建学生表: 第一种: create table student (sno char(5) primary key,/*学号*/ /*可以直接指定主键*/ sname char(20) not null,/*姓名*/ ssex c

使用GUID作为数据表主键的好处(转)

http://blog.itpub.net/3875/viewspace-789520/ 分类: 数据库开发技术 使用GUID作为数据表主键的好处 [@[email protected]] 使用GUID作为数据表主键的好处 数据表主健通常采用以下三种方式: 1.         自动递增值. 2.         唯一名称.这个是使用自己定义的算法来生成一个唯一序列号. 3.         GUID(全局唯一标识符). GUID与自动递增值及唯一名称比较 GUID 在客户端生成,由GUID的特