首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

当add constraint with ONLINE = ON时,SQL Server中的“ALTER TABLE语句中option ONLINE的无效用法”

在SQL Server中,ALTER TABLE语句用于修改现有表的结构。其中,可以使用ADD CONSTRAINT子句来添加约束到表中。在添加约束时,可以使用OPTION ONLINE = ON选项来指定在线操作,即在添加约束的同时允许其他用户对表进行读写操作。

然而,需要注意的是,在SQL Server中,ALTER TABLE语句中的OPTION ONLINE选项只对某些特定类型的约束有效,而对其他类型的约束无效。具体来说,OPTION ONLINE = ON只对以下类型的约束有效:

  1. PRIMARY KEY约束:用于定义表中的主键。
  2. UNIQUE约束:用于确保表中的某一列或一组列的值是唯一的。
  3. FOREIGN KEY约束:用于定义表之间的关系,确保引用表中的外键值在主表中存在。
  4. CHECK约束:用于定义列或表级别的条件,确保满足特定的逻辑条件。

对于其他类型的约束,如DEFAULT约束、NULL约束、INDEX约束等,OPTION ONLINE = ON选项是无效的,即无法在添加这些约束时进行在线操作。

在实际应用中,使用OPTION ONLINE = ON选项可以避免在添加约束时对表进行长时间的锁定,从而减少对业务操作的影响。然而,需要注意的是,使用在线操作可能会导致一些性能上的损失,因此在选择是否使用OPTION ONLINE = ON时,需要根据具体情况进行权衡。

对于腾讯云的相关产品和产品介绍链接地址,可以参考以下内容:

  1. 腾讯云数据库SQL Server:提供了全托管的SQL Server数据库服务,支持高可用、弹性扩展等特性。详情请参考:https://cloud.tencent.com/product/cdb_sqlserver
  2. 腾讯云云服务器(CVM):提供了可弹性调整配置的云服务器实例,适用于各种应用场景。详情请参考:https://cloud.tencent.com/product/cvm
  3. 腾讯云云数据库Redis:提供了高性能、可扩展的内存数据库服务,适用于缓存、会话存储等场景。详情请参考:https://cloud.tencent.com/product/redis
  4. 腾讯云对象存储(COS):提供了安全可靠、高扩展性的云存储服务,适用于存储和处理各种类型的数据。详情请参考:https://cloud.tencent.com/product/cos
页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

  • 单表超 100000000 条记录数据库结构变更,你能做到在线平滑变更吗?

    这样对于 DBA 来说是非常痛苦,好在有 pt-online-schema-change 工具在没有 Online DDL 解决了这一问题,pt-online-schema-change 其主要特点就是在数据库结构修改过程不会造成读写阻塞...默认情况下会选择最优索引,工具会在 SQL句中添加 FORCE INDEX 子句。...`employees` ' --alter-foreign-keys-method=rebuild_constraints ,做一个原子性交换重命名表操作,删除旧表操作在删除触发器一并操作...总结 业务量较大,修改操作会等待没有数据修改后,执行最后 rename 操作。因此,在修改表结构,应该尽量选择在业务相对空闲时,至少修改表上数据操作较低,执行较为妥当。...关于在对表进行 DDL 使用 MySQL 原生 Online DDL 特性还是使用 pt-online-schema-change 工具,通过以上对工具使用说明与用法测试可以总结如下: 如果 MySQL

    3.3K20

    技术分享 | Online DDL 工具 pt-osc

    原表上要有 primary key 或 unique index,因为执行该工具时会创建一个 DELETE 触发器来更新新表; 注意:一个例外情况是 --alter 指定句中是在原表列上创建...--print:打印工具执行 SQL 语句。 --statistics:打印统计信息。 --pause-file:指定文件存在,终止执行。 --max-load:超过指定负载,暂定执行。...指定该选项,则去掉建表语句中 engine 选项,使用系统默认存储引擎创建新表。 --defaults-file, -F 指定配置文件,需指定绝对路径。...--pause-file "string" 当此参数指定文件存在,将暂停执行 DDL。比如, DDL 影响业务,可创建指定文件,暂停 DDL。...延迟超过 --max-lag ,将暂停 data copy。

    4.3K30

    SQL Server 重新组织生成索引

    概述 无论何时对基础数据执行插入、更新或删除操作,SQL Server 数据库引擎都会自动维护索引。随着时间推移,这些修改可能会导致索引信息分散在数据库(含有碎片)。...索引包含逻辑排序(基于键值)与数据文件物理排序不匹配,就存在碎片。...IGNORE_DUP_KEY 选项仅适用于创建或重新生成索引后发生插入操作。执行 CREATE INDEX、ALTER INDEX 或 UPDATE ,该选项无效。默认值为 OFF。...系统目录不存储 ONLINE、MAXDOP 和 SORT_IN_TEMPDB 值。除非在索引语句中指定,否则,将使用选项默认值。...在早期版本 SQL Server ,您有时可以重新生成非聚集索引来更正由硬件故障导致不一致。

    2.6K80

    MySQL adddrop字段时报主键冲突

    从官方文档描述所说 online ddl 期间,其他会话执行dml操作造成唯一键冲突sql会记录到 online log ,在commit阶段等变更结束之后再应用这些sql会导致报错唯一键冲突...When running an online DDL operation, the thread that runs the ALTER TABLE statement applies an online...id=76895 https://bugs.launchpad.net/percona-server/+bug/1445589 关联知识 innodb_online_alter_log_max_size...该参数限定了online ddl操作使用临时日志文件最大大小。在创建索引或者对表进行alter操作,该日志文件存储了DDL操作期间对表 insert,update,delete数据记录。...临时日志文件每次以 innodb_sort_buffer_size 为单位进行扩展直至达到 innodb_online_alter_log_max_size设置最大值。

    4.7K21

    Oracle基础维护02-表、主键、索引、表结构维护手册

    2.2.2普通表建立主建示例 alter table t_normal add constraint pk_t_normal_id primary key(id) using index tablespace...2.3.2分区表建立主建示例 alter table t_part add constraint pk_t_part_id primary key(start_time, id) using index...3.2.3重建/新建表主建 普通表t_normal建立主建: alter table t_normal add constraint pk_t_normal_id primary key(id) using...index tablespace dbs_i_xxx; 分区表t_part建立主建: alter table t_part add constraint pk_t_part_id primary key...; 注:跟上面新建表建立索引方法一样,只是这里多了online参数可选,加上online参数意思是在线建立索引,可以避免创建索引过程,影响到其他会话对此表DML操作。

    52910

    ORACLE分区表转换之在线重定义(DBMS_REDEFINITION)

    add constraint U_1_PAR unique (S_NAME) using index tablespace PARTITION; --创建check约束 alter table STUDENT_PAR...如果映射方法没有提供,则认为所有包括在中间表列用于表重定义。如果给出了映射方法,则只考虑映射方法给出列。如果没有给出重定义方法,则默认使用主键方式。...DML操作,那么可以选择执行一次或多次SYNC_INTERIM_TABLE()过程,此操作可以减少最后一步执行FINISH_REDEF_TABLE()过程锁定时间。...ALTER TABLE STUDENT_PAR RENAME CONSTRAINT U_1 TO U_1_20210411; ALTER TABLE STUDENT_PAR RENAME CONSTRAINT...U_1_20210411; --rename 新分区表约束和索引 ALTER TABLE STUDENT RENAME CONSTRAINT U_1_PAR TO U_1; ALTER TABLE

    1.8K30

    pt-online-schema-change在线修改表结构

    首先,osc创建与原始表相同不包含数据新表并按照需求进行表结构修改,然后将原始表数据按chunk大小逐步拷贝到新表拷贝完成后,会自动同时修改原始表和新表名字并默认将原始表删除。...--alter-foreign-keys-method 外键改表前后必须持续链接正确表,该工具rename原始表并用新表来取代原始表,外键必须正确更新到新表上,并且原始表外键不再生效...table来drop并re-add链接新表外键。...另外,因为在MySQLalter table比外部拷贝数据速率快很多,所以拷贝速率是按照--chunk-size-limit来决定 因为MySQL限制,外键在改表前后名字会不一样,改表后新表外键名前会加一个下划线...删除外键(drop foreign key constrain_name),需要指定名称_constraint_name,而不是原始constraint_name。

    1.3K30

    Oracle 学习笔记

    设计数据库,要决定它包括哪些表,每个表包含哪些列,每列数据类型等。 在表创建列,必须为其指定数据类型,列数据类型决定了数据取值、范围和存储格式。...表管理 主要为对列及其属性修改 增加列 ALTER TABLE XS ADD ( JXJ NUMBER(1), DJSM VARCHAR2(40) DEFAULT '奖金1000元' ); 修改列...即两个不同SESSION所插入数据是互不相干某一个SESSION退出之后临时表数据就被截断(truncate table,即数据清空)了。...,而且事务级临时表则不管是commit、rollback或者是会话结束,临时表数据都将被截断 约束 主键约束,外键约束,特殊约束等 手机号约束 ALTER TABLE EMPLOYEES ADD (...通过视图修改数据,实际上是在改变基表数据;相反地,基表数据改变也会自动反映在由基表产生视图中。由于逻辑上原因,有些Oracle视图可以修改对应基表,有些则不能(仅仅能查询)。

    1.3K50
    领券