首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往
您找到你想要的搜索结果了吗?
是的
没有找到

执行ALTER TABLE语句时如何避免长时间阻塞并发查询

最近看到这样的案例: 1、应用需要为现有的表添加列 2、应用执行ALTER TABLE ADD COLUMN语句 3、其他每个查询都需要被阻塞几分钟甚至更长时间 为什么出现这种情况?如果避免?...# ALTER TABLE test ADD COLUMN whatever int4; ALTER TABLE TIME: 12.662 ms 可以看到该语句执行的非常快,在看下alter table...(SESSION 2) =# ALTER TABLE test ADD COLUMN whatever2 int4; 会话2执行alter 语句时由于需要等待会话1释放锁被阻塞,但是他已经获取这个表上的...首先设置事务超时时间,然后执行alter table语句: =$ printf "SET statement_timeout = 50;\nALTER TABLE test add column whatever2...INT4;\n" SET statement_timeout = 50; ALTER TABLE test add column whatever2 INT4; 超时时间保证alter table语句执行不超过

2.3K10

SQL命令 ALTER TABLE

描述 ALTER TABLE语句修改表定义;它可以添加元素、删除元素或修改现有元素。在每个ALTER TABLE语句中只能执行一种类型的操作。...如果尝试通过ALTER TABLE TABLE NAME ADD COLUMN语句将字段添加到表中: 如果该名称的列已经存在,则该语句将失败,并显示SQLCODE-306错误。...如果语句对列指定了NOT NULL约束,并且该列没有默认值,则如果表中已存在数据,则该语句将失败。这是因为,在完成DDL语句之后,不满足所有预先存在的行的NOT NULL约束。...如果语句对列指定了NOT NULL约束,并且该列有默认值,则该语句将更新表中的所有现有行,并将该列的默认值分配给该字段。这包括CURRENT_TIMESTAMP等默认值。...添加整数计数器 如果通过ALTER TABLE TABLE NAME ADD COLUMN语句将整数计数器字段添加到表中: 如果表没有标识字段,则可以向该表添加标识字段。

2K20

SQL命令 ALTER VIEW

描述 ALTER VIEW命令用于修改视图。 视图基于由SELECT语句或由两个或多个SELECT语句组成的UNION组成的查询的结果集。...它们必须在数量和顺序上与SELECT语句中指定的表列相对应。 还可以在SELECT语句中指定这些视图列名作为列名别名。 如果两者都不指定,则使用表列名作为视图列名。...权限 ALTER VIEW命令是一个特权操作。 用户必须具有%ALTER_VIEW管理权限才能执行ALTER VIEW。...用户必须在指定的视图上拥有%ALTER权限。 如果用户是视图的Owner(创建者),则自动授予该用户该视图的%ALTER权限。 否则,用户必须被授予视图%ALTER权限。...可以使用GRANT命令分配%ALTER_VIEW和%ALTER权限,如果拥有适当的授予权限。 可以通过调用%CHECKPRIV命令来确定当前用户是否具有%ALTER权限。

1.4K30

MySQL之alter ignore 语法

MySQL之alter ignore 语法 今天上班的时候,业务方问了我这样一个问题:我有一个表,需要添加一个唯一的字段,但是目前这个字段存在一些重复值,有没有好的解决办法。...除了这两种方法,在低版本的mysql中还有一种方法,是使用alter ignore table的方法了,这个语法使用的比较少,我这里进行了一个实验进行测试: mysql--dba_admin@127.0.0.1...=1; +---------------------+ | @@old_alter_table=1 | +---------------------+ | 0 | +...也就是alter table test的方法,发现有冲突的记录,然后我们该用alter ignore的方法,错误依旧保留,经过查询是少了一个参数,old_alter_table,要想成功实现去除重复记录并且添加唯一索引...再说明一点,alter ignore table的本质是创建一张新表,然后新表的结构上age字段是唯一的,再通过insert ignore的语法进行插入,碰到重复的记录,则直接删除。

3.7K20

BI-SQL丨Drop & Alter

[1240] Drop & Alter Drop,撤销操作;Alter,更新操作。...在PowerBI中,如果我们针对某些数据清洗操作进行修改的话,只需要打开高级编辑器查看M语言,对特定的语句进行修改删除就可以了。...但是在数据库仓库中,我们往往需要借助Drop和Alter或者其他语句才能对数据仓库进行修改。 为什么在数据仓库中我们不能像在PowerQuery中进行同样的操作呢? 其实这个和二者的定位有关。...因此,为了数据库稳定性而言,我们如果需要对数据仓库进行逻辑的修改以及调整,则必须有一套规范化的操作流程以及专业化的逻辑修改语句。...,因为我们做BI前端使用这类操作的情况其实并不多见,我们更多就是单纯的使用查询聚合语句

66520

加快alter table的操作速度

01 加快alter table的操作速度 MySQL中的alter table操作对于大表来讲,是一个比较严重的问题,MySQL执行大部分alter table的操作步骤是: 用新的结构创建一张表...一般针对这种大表的更新,常见的操作技巧无外乎两种情况,一种是在一台测试机器上执行alter table操作,然后和线上的的主库进行切换,另外一种是通过创建一张新表,然后通过重命名和删表操作来交换两张表。...当然,还有一小部分alter table的操作是不需要重建表的,例如下面的操作,我们已知需要给col_name字段添加一个默认值5,SQL如下: alter table test modify column...再来看另外一种方法: alter table test alter column col_name set default 5; 这个操作将会直接修改.frm文件而不涉及表数据,因此这个操作是相当快的...还有一种是用alter语法快速创建MyISAM索引的操作,我们知道MyISAM采用的是表锁,在使用alter table语法导入数据的时候有一种有效的方法,如下: alter table test

1.9K10
领券