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_CO…

文档解释

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不可用的问题。

香港美国云服务器首选港服(Server.HK),2H2G首月10元开通。
港服(Server.HK)(www.IDC.Net)提供简单好用,价格厚道的香港/美国云服务器和独立服务器。IDC+ISP+ICP资质。ARIN和APNIC会员。成熟技术团队15年行业经验。

为您推荐

港服(Server.HK)MongoDB教程:MongoDB 索引

MongoDB 索引 索引通常能够极大的提高查询的效率,如果没有索引,MongoDB在读取数据时必须扫描集合中的每个文件...

港服(Server.HK)PostgreSQL教程PostgreSQL 别名

PostgreSQL 别名 我们可以用 SQL 重命名一张表或者一个字段的名称,这个名称就叫着该表或该字段的别名。 创建...

港服(Server.HK)Memcached教程:Memcached stats 命令

Memcached stats 命令 Memcached stats 命令用于返回统计信息例如 PID(进程号)、版本号...

港服(Server.HK)Redis教程:Redis 数据类型

Redis 数据类型 Redis支持五种数据类型:string(字符串),hash(哈希),list(列表),set(集...

港服(Server.HK)Redis教程:Redis GEO

Redis GEO Redis GEO 主要用于存储地理位置信息,并对存储的信息进行操作,该功能在 Redis 3.2 ...
返回顶部