首页 > 其他分享 >lightdb秒级增加列和删除列(not null带默认值)

lightdb秒级增加列和删除列(not null带默认值)

时间:2024-05-16 15:40:54浏览次数:17  
标签:null lightdb 数据类型 oradb table 默认值

  对数据量过亿的大表而言,dba最头疼的是随着业务变化增加带默认值的字段,以及修改字段的数据类型,在实现不好的数据库中,动不动执行半天,中途失败的话,还会卡半天。这在lightdb中是不会发生的。如下所示:

lightdb@oradb=# create table t(id int,v varchar2(100));
CREATE TABLE
lightdb@oradb=# insert into t select level,uuid() from dual connect by level<1000000;
INSERT 0 999999
lightdb@oradb=# \timing on
Timing is on.
lightdb@oradb=# alter table t add c_d date not null default sysdate;
ALTER TABLE
Time: 23.640 ms
lightdb@oradb=# select * from t limit 1;
 id |                  v                   |         c_d         
----+--------------------------------------+---------------------
  1 | 23364dc4-63e8-4017-995e-adb181a8731d | 2024-05-16 15:32:36
(1 row)

Time: 1.865 ms
lightdb@oradb=# alter table t add c_i number not null default 1;
ALTER TABLE
Time: 15.155 ms
lightdb@oradb=# alter table t drop column v;
ALTER TABLE
Time: 3.194 ms

但是修改数据类型为其他簇的数据类型意外,因为他要验证数据的有效性。如下:

lightdb@oradb=# alter table t modify c_i varchar2(10);
ALTER TABLE
Time: 1679.760 ms (00:01.680)

 

标签:null,lightdb,数据类型,oradb,table,默认值
From: https://www.cnblogs.com/lightdb/p/18196069

相关文章

  • lightdb mysql 8.0兼容之不可见主键
    数据库设计通常需要满足一定的范式要求,其中主键更是最基本的要求。不过,数据库管理系统却允许我们创建没有主键的表。这样的表在数据库中会带来查询性能低下、复制延迟甚至无法实现高可用配置等问题。为此,lightdb在22.1版本引入了一个新的功能,叫做不可见主键(GeneratedInv......
  • lightdb数据库超时相关控制参数
    在业务开发中,通常因为代码不规范、中间件缺陷、DBA误提交批量SQL等原因,会导致服务端连接一直存在、但是实际上并未在执行的情况,从而导致数据库连接泄露。为了防止这种异常情况积压,lightdb中包含了多个参数用于控制超时相关的行为:lock_timeout:控制多久拿不到锁就自动超时并回......
  • Mybatis-Plus中 updateById 无法将已有值的字段更新为 null
    在MyBatis-Plus中,使用updateById,null字段并不会更新,其实是和更新的策略有关,当然,也有插入策略。1、调整全局策略(会对所有的字段都忽略判断,如果一些字段不想要修改,但是传值的时候没有传递过来,就会被更新为null)mybatis-plus:global-config:db-config:insert-stra......
  • 【MySQL】求和查询,目标值int,但空数据时返回null的问题(Java)
    问题分析intselectDeviceMonthRepairCount(StringdeviceType,Stringmonth);<selectid="selectDeviceMonthRepairCount"resultType="int">SELECTSUM(repair_count)FROMwarranty_recordsWHEREdevice_type=......
  • 在MySQL中,如果你想要查询一个字段,当该字段的值为NULL时显示为0,而不是NULL
    在MySQL中,如果你想要查询一个字段,当该字段的值为NULL时显示为0,而不是NULL,可以使用COALESCE函数或者使用IFNULL函数(在MySQL8.0及更早版本中)。这两个函数都可以用来返回第一个非NULL表达式。以下是使用COALESCE函数的示例:SELECTCOALESCE(column_name,0)AScolumn_nameFROM......
  • NULL和nullptr的区别
    `NULL`和`nullptr`是在C++中用于表示空指针的关键字,它们的主要区别如下:1.**类型:**-`NULL`是在C语言中定义的宏,被定义为整数0或者`(void*)0`,它不是一个真正的空指针类型。-`nullptr`是C++11新增的关键字,它是一个空指针常量,是一个真正的空指针类型。2.**......
  • MySQL排序时, ORDER BY将空值NULL放在最后
    我们在日常工作当中;往往业务会提到一些莫名其妙的排序等规则;例如:按照某个字段升序排列,同时空值放在后面;但mysql默认升序排列时空值是在最前面;有下面几个方法:方法一:ORDERBY字段ISNULL,字段;方法二:SELECT*FROMtestORDERBYIF(ISNULL(字段),1,0),字段DESC;方法......
  • 通过劫持线程arena实现任意地址分配 n1ctf2018_null
    通过劫持线程arena,当堆开了一个线程之后,如果没有做好保护随之的危险也悄然而至❗BUU上的n1ctf2018_null很好的说明了这个问题题目链接:BUUCTF在线评测(buuoj.cn)看一下保护:除了pie保护剩下的保护全开了,64位ida载入看一下上来是一个输入密码,密码是i'mreadyforchallenge......
  • LightDB to Oracle 实时数据同步参考手册
    LightDBtoOracle实时数据同步参考手册目录:1.前言2.功能简介3.安装与配置3.1.配置数据库3.2.创建复制槽3.3.高可用环境配置4.启动5.功能详细说明5.1.命令行参数说明6.注意事项6.1.max_slot_wal_keep_size参数配置6.2.debug.dat注意事......
  • openGauss NULL值
    NULL值NULL值代表未知数据。无法比较NULL和0,因为它们是不等价的。创建表时,可以指定列可以存放或者不能存放NULL值,详情请参见NOTNULL约束。本节介绍ISNULL和ISNOTNULL操作符。创建表customer_t1,数据如下:openGauss=#SELECT*FROMcustomer_t1;c_customer_sk|c_custome......