zl程序教程

您现在的位置是:首页 >  数据库

当前栏目

MySQL Error number: 3775; Symbol: ER_GTID_UNSAFE_ALTER_ADD_COL_WITH_DEFAULT_EXPRESSION; SQLSTATE: HY000 报错 故障修复 远程处理

mysql 故障 处理 远程 报错 修复 Error ER
2023-06-13 09:19:14 时间
MySQL Error number: 3775; Symbol: ER_GTID_UNSAFE_ALTER_ADD_COL_WITH_DEFAULT_EXPRESSION; SQLSTATE: HY000 报错 故障修复 远程处理
文档解释

Error number: 3775; Symbol: ER_GTID_UNSAFE_ALTER_ADD_COL_WITH_DEFAULT_EXPRESSION; SQLSTATE: HY000

Message: Statement violates GTID consistency: ALTER TABLE ADD COLUMN .. with expression as DEFAULT.

ER_GTID_UNSAFE_ALTER_ADD_COL_WITH_DEFAULT_EXPRESSION是MySQL数据库定义出来的警告错误。此刻错误是由于使用了非GTID可用的语句导致的。

错误说明:

MySQL数据库的ER_GTID_UNSAFE_ALTER_ADD_COL_WITH_DEFAULT_EXPRESSION错误,通常意味着使用的MySQL语句无法在Global Transaction ID (GTID)模式下执行,此错误码为 3775。 具体来说,就是在GTID模式加入了一个新列时,如果是修改语句,并且带有DEFAULT type expression, 那么就会报出该错误,因为MySQL无法确切的计算该表结构发生变更时,默认值被计算得出来。

常见案例:

一个典型的ER_GTID_UNSAFE_ALTER_ADD_COL_WITH_DEFAULT_EXPRESSION错误案例是某些MySQL复制出现停滞时,出现该错误。 如果客户端正在使用GTID模式,当需要执行ALTER语句以改变表的结构时,如果同时需要增加一个带有默认值的列并且该语句实际上被多次执行,则在大多数情况下,它会出现停滞错误。

解决方法:

为了解决 ER_GTID_UNSAFE_ALTER_ADD_COL_WITH_DEFAULT_EXPRESSION 错误,首先,要保证在执行ALTER语句时,使用的是GTID可用的语句,而不是添加了DEFAULT的type expression的语句,以避免发生误差。其次,可以使用临时表,将表结构,数据等都拷贝到临时表,再基于临时表对正式表的修改,最后,再将临时表的内容导回正式表,这样就可以很well的解决 GTID不可用的问题。


我想要获取技术服务或软件
服务范围:MySQL、ORACLE、SQLSERVER、MongoDB、PostgreSQL 、程序问题
服务方式:远程服务、电话支持、现场服务,沟通指定方式服务
技术标签:数据恢复、安装配置、数据迁移、集群容灾、异常处理、其它问题

本站部分文章参考或来源于网络,如有侵权请联系站长。
数据库远程运维 MySQL Error number: 3775; Symbol: ER_GTID_UNSAFE_ALTER_ADD_COL_WITH_DEFAULT_EXPRESSION; SQLSTATE: HY000 报错 故障修复 远程处理