DB2 自动递增字段实现方法(db2锁超时解决方案)这样也行?

随心笔谈2年前发布 编辑
177 0
🌐 经济型:买域名、轻量云服务器、用途:游戏 网站等 《腾讯云》特点:特价机便宜 适合初学者用 点我优惠购买
🚀 拓展型:买域名、轻量云服务器、用途:游戏 网站等 《阿里云》特点:中档服务器便宜 域名备案事多 点我优惠购买
🛡️ 稳定型:买域名、轻量云服务器、用途:游戏 网站等 《西部数码》 特点:比上两家略贵但是稳定性超好事也少 点我优惠购买


使用这个一般是用作识别码的,当做定义表格的主键。generated语法则可以自定义你想怎么产生这个值的策略。

语法如下:

column definition generated {always | by default}

as {identity identity rules | using your rules}

我们先删掉上次我们建立的表格:

db2=> drop table nomination

然后再创建一个表格:

复制代码 代码如下:

Create table nomination

(

nominationID BIGINT Not Null Primary Key generated always as identity,

nominee char(6) Not Null,

nominator char(6) Not Null,

reason VARCHAR(250),

nomdate date Not Null,

categoryid INTEGER Not Null,

check (nominee !=nominator) not enforced enable query optimization,

Foreign Key CategoryExists (categoryid)

references category (categoryid) on delete restrict

)

注意黑体字,以后我们就不能使用insert或者update来显式的指定它的值了。

而DB2中的identity也提供了多种策略,具体的可以去查DB2手册,我们举例如下:

我们先删掉上次我们建立的表格:

db2=> drop table category

然后建立表单

复制代码 代码如下:

Create table category

(

CategoryID INTEGER Primary Key Generated Always as Identity

(Start With 1 Increment by 1 minvalue 0 maxvalue 999999999

no cycle cache 5 no order),

CateogryName VARCHAR(50) Not Null,

Eligibility VARCHAR(250)

)

黑体字中identity中的语句你都能在DB2的手册中查到,都是自然语言一看就懂了。

有时候你并不只想去做数字的填充,你可能还想处理一些字母,那么下边这个转换大写的例子就是给你的:

db2=> alter table category add column

UpperCatName VARCHAR(50) generated always as (upper(CategoryName))

关于这些在DB2的文档里都有具体说明。

您可能感兴趣的文章:DB2 常用命令小结DB2比较常用与实用sql语句总结db2 导入导出单个表的操作详解DB2 日期和时间的函数应用说明DB2 数据库创建、表的ixf文件导出导入示例DB2 常用命令速查(备忘)DB2 SELECT语句高级用法DB2如何查看当前用户模式及切换用户CentOS下DB2数据库安装过程详解DB2新手使用的一些小笔记:新建实例、数据库路径不存在、客户端连接 .比较SQL Server与Oracle、DB2DB2数据库的备份和恢复Python连接DB2数据库

© 版权声明

相关文章