人大金仓数据库使用总结

人大金仓是国产数据库,但是网上资料较少。这个项目偶然使用了这个数据库。就将使用过程中产生的一些问题总结一下,发表出来。大家有什么问题也可以在评论区提出,我们一起研究讨论。

这个数据库是仿照Oracle数据库做的,所以有些疑难问题而已参照Oracle的做法来。还是不行的话,就只能通过查看人大金仓的帮助文档来找解决方案了。



  • 更新表结构时出错

SQL语句:

alter table TB_CA ALTER COLUMN CA_NAME TYPE VARCHAR(100);

报错信息:

执行语句:1
alter table TB_CA ALTER COLUMN CA_NAME TYPE VARCHAR(100);
执行成功: 否
执行耗时: 3 毫秒
服务器消息: 
[KingbaseES Server]ERROR: 不能使用视图或者规则修改一个列的类型

0 条语句执行成功
1 条语句执行失败

根据错误可以知道,这是因为在视图中引用了该字段,所以不允许修改。
我们可以先执行删除视图的操作,然后再修改该字段,之后再执行视图的创建操作
可以这样写:

-- 先删除用的到视图
DROP VIEW "PUBLIC"."VW_CERT_POLICY";

-- 然后执行相应的修改操作
alter table TB_CA ALTER COLUMN CA_NAME TYPE VARCHAR(100);

-- 最后再将该视图重建即可。即创建视图
CREATE FORCE VIEW "PUBLIC"."VW_CERT_POLICY"("CA_ID","RPOLICY_ID","ATTRIBUTE_NAME","ATTRIBUTE_ITEM_IN_CERT","ATTRIBUTE_IN_CERT_TYPE","CA_NAME")
AS
 SELECT TB_CA.CA_ID, TB_CERT_POLICY.RPOLICY_ID, TB_CERT_POLICY.ATTRIBUTE_NAME, TB_CERT_POLICY.ATTRIBUTE_ITEM_IN_CERT, TB_CERT_POLICY.ATTRIBUTE_IN_CERT_TYPE, TB_CERT_POLICY.CA_NAME
   FROM TB_CERT_POLICY
   LEFT JOIN TB_CA ON TB_CERT_POLICY.CA_NAME = TB_CA.CA_NAME;





- 删除数据时的空值问题

delete from TB_APP where APP_NAME is null;  --删除varchar类型的空值用 is null
delete from TB_OPT_LOG where APP_REGION='';  --删除text类型的空值用 =''





- 创建表并新增一条数据

CREATE TABLE "PUBLIC"."TB_SYS_CONFIGURE"(
"ATTR_KEY" VARCHAR (100) NOT NULL ,
"ATTR_VALUE" VARCHAR (100) NOT NULL
)WITHOUT OIDS
TABLESPACE "SYSTEM";

--新增一条数据
INSERT INTO TB_SYS_CONFIGURE
(ATTR_KEY, ATTR_VALUE)
VALUES ('accessCount', '2764'); 

或是创建之后新增多条数据

CREATE TABLE "PUBLIC"."TB_SYS_CONFIGURE"(
"ATTR_KEY" VARCHAR (100) NOT NULL ,
"ATTR_VALUE" VARCHAR (100) NOT NULL
)WITHOUT OIDS
TABLESPACE "SYSTEM";

--新增多条数据,多条数据之间以逗号分隔
INSERT INTO TB_SYS_CONFIGURE
(ATTR_KEY, ATTR_VALUE)
VALUES ('accessCount', '2764'),
 ('accessCountOne', '3456'),
 ('accessCountTwo', '7890'); 
  • 2
    点赞
  • 22
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值