Spring利用GeneratedKeyHolder,提供了一个可以返回新增记录所对应的主键值的方法: int update(PreparedStatementCreator psc, KeyHolder generatedKeyHolder) Spring为KeyHolder接口指代了一个通用的实现类GeneratedKeyHolder,该类返回新增记录时的自增长主键值.假设我们希望在新增论坛板块对象后,希望将主键值加载到对象中,则可以按以下代码进行调整: public Role create
原文:MS SQL SERVER搜索某个表的主键所在的列名 SELECT SYSCOLUMNS.name FROM SYSCOLUMNS,SYSOBJECTS,SYSINDEXES,SYSINDEXKEYS WHERE SYSCOLUMNS.id = object_id('Tab_XXX') --syscolumns.id为该列所属的表对象ID AND SYSOBJECTS.xtype = 'PK' --sysobjects.xtype对象类型 AND SYSOBJECTS.pare
背景 有同学讨论到MySQL 5.5下给大表加主键时会锁住读的问题,怀疑与fast index creation有关,这里简单说明下. 对照现象 为了说明这个问题的原因,有兴趣的同学可以做对比实验. 1) 在给InnoDB表创建主键期间,会锁住该表上的读数据 2) 但是同样的表执行删除主键期间,不会锁住该表上的读操作 —-这说明与是否fast index creation无关,因为这两个操作在数据层面的行为应该是类似的,实际上,创建/删除主键都必须copy data