最新文章专题视频专题问答1问答10问答100问答1000问答2000关键字专题1关键字专题50关键字专题500关键字专题1500TAG最新视频文章推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37视频文章20视频文章30视频文章40视频文章50视频文章60 视频文章70视频文章80视频文章90视频文章100视频文章120视频文章140 视频2关键字专题关键字专题tag2tag3文章专题文章专题2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章专题3
问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501
当前位置: 首页 - 科技 - 知识百科 - 正文

DB2自增长列导入、导出测试

来源:懂视网 责编:小采 时间:2020-11-09 11:01:20
文档

DB2自增长列导入、导出测试

DB2自增长列导入、导出测试:DB2 自增长列测试1当想将表中一列修改为自动增长时,可用下面命令:Alter table lt;table namegt; alter column lt;column DB2 自增长列测试1当想将表中一列修改为自动增长时,可用下面命令:Alter table alter column set
推荐度:
导读DB2自增长列导入、导出测试:DB2 自增长列测试1当想将表中一列修改为自动增长时,可用下面命令:Alter table lt;table namegt; alter column lt;column DB2 自增长列测试1当想将表中一列修改为自动增长时,可用下面命令:Alter table alter column set

DB2 自增长列测试1当想将表中一列修改为自动增长时,可用下面命令:Alter table lt;table namegt; alter column lt;column

DB2 自增长列测试
1当想将表中一列修改为自动增长时,可用下面命令:
Alter table

alter column set not null
Alter table
alter column set generated always as identity (start with 1,increment by 1)
上面命令是在改一表中列的属性时,在网上找到的很有用。

2当修改表中一列自动增长的开始值时,可用下面的命令:
ALTER TABLE ALTER COLUMN RESTART WITH 18;

测试:

CREATE TABLE customer_orders_t (
order_id INT NOT NULL GENERATED ALWAYS AS IDENTITY
(START WITH 1
INCREMENT BY 1
MINVALUE 1
NO MAXVALUE
NO CYCLE
NO CACHE
ORDER),
order_date DATE NOT NULL,
cust_id INT NOT NULL,
product_id INT NOT NULL,
quantity INT NOT NULL,
price DECIMAL(10,2) NOT NULL,
status CHAR(9) NOT NULL,
PRIMARY KEY (order_date, order_id))


注:该列中的以及它本身的 IDENTITY 属性并没有保证所生成的序列值是唯一的。
但是, PRIMARY KEY 约束保证了表中行的唯一性。
为了确保只将自动生成的值插入标识列,他们指定了 GENERATED ALWAYS 子句。
使用最后一个生成的 order_id 来确定多少数据
选项 NO CACHE 和 ORDER 确保了在系统故障的情况下,不废弃未使用的标识值。

测试1

插入数据

insert into customer_orders_t values (default,current date,12,12,12,10.2,'2')

--成功


insert into customer_orders_t values (1,current date,12,12,12,10.2,'2')

-- 报错 因为:IDENTITY字段不允许指定值

--解决方案
ALTER TABLE customer_orders_t
ALTER COLUMN order_id
SET GENERATED BY DEFAULT


--创建orders_seq对象
CREATE SEQUENCE orders_seq
AS INT
START WITH 1
INCREMENT BY 1
MINVALUE 1
NO MAXVALUE
NO CYCLE
NO CACHE
ORDER


--插入数据
INSERT INTO customer_orders_t VALUES (NEXT VALUE FOR orders_seq, CURRENT DATE,12,12,12,10.2,'2')

1、命令行取sequence soc.nico_qian的下一个值:
db2 "values next value for soc.nico_qian"

2、命令行重置sequence soc.nico_qian:
db2 "alter sequence soc.nico_qian restart",重置后的值默认为创建SEQUENCE时的MINVALUE

3、命令行以指定值22重置sequence soc.nico_qian:
db2 "alter sequence soc.nico_qian restart with 22"

4、命令行重置表KS.CHECK_CONDITION的IDENTITY字段初始值为20:
db2 "ALTER TABLE KS.CHECK_CONDITION ALTER COLUMN identity_column_name RESTART WITH 20"

5、如果sequence被以命令行的方式重置,那么用到这个sequence的嵌入式C程序代码的绑定包
  的VALID字段会被修改为N,那么在下一次这个代码被调用的时候,DB2会自动重新绑定
   此代码的绑定包,,这个动作会给应用程序带来不可预知的后果,比如:如果这段代码是在很
   频繁的被用到的时间段内被重新绑定,那么极易造成死锁。
   同样的问题会出现在IDENTITY字段上。

linux

声明:本网页内容旨在传播知识,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。TEL:177 7030 7066 E-MAIL:11247931@qq.com

文档

DB2自增长列导入、导出测试

DB2自增长列导入、导出测试:DB2 自增长列测试1当想将表中一列修改为自动增长时,可用下面命令:Alter table lt;table namegt; alter column lt;column DB2 自增长列测试1当想将表中一列修改为自动增长时,可用下面命令:Alter table alter column set
推荐度:
标签: 生成 导出 数据
  • 热门焦点

最新推荐

猜你喜欢

热门推荐

Top