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

MYSQL 生产环境字段更改failed问题

早上看到微信一个银行同学问了小问题,希望他不要背锅,具体问题是MYSQL 一个50G表要更改字段,将一个字段从varchar(3) 改成varchar(6). MYSQL 5.7 官版。...对于大小为0到255个字节VARCHAR列,需要一个长度字节来编码该。对于大小为256字节或更大VARCHAR列,需要两个长度字节。...在这种情况下,所需长度字节数从1更改为2,这仅由表副本支持(ALGORITHM = COPY)。...到底是为什么,官方在文档明确了 ? 为了确保事务可串行性,服务器必须不允许一个会话对另一个会话未完成显式或隐式启动事务中使用表执行数据定义语言(DDL)语句。...注:到目前为止MYSQL 在修改字段方面,对比其他数据库还是要注意地方多多,当然MYSQL 8 已经添加了 instant 让修改字段变得更让人放心。

1.8K30

mysql学习总结03 — 列属性(字段属性)

mysql学习总结03 — 列属性(字段属性) toc mysql6个列属性:null,default,comment,primary key,unique key,auto_increment 1...) charset utf8; 6. auto_increment 自动增长 通常自动增长用于逻辑主键,只适用于数值,sqlserver中使用identity(1,1) 6.1 自动增长原理 在系统维护一组数据保存当前使用自动增长属性字段...; 6.4 删除自动增长 删除自增长:修改自动增长字段字段属性之后不再保留 auto_increment 即可 6.5 初始设置 在系统中有一组变量维护自增长初始和步长 show variables...like ‘auto_increment%’; 6.6 细节问题 一张表最多只有一个自增长,自增长会上升到表选项 如果数据插入没有触发自增长(给定了数据),那么自增长不会表现,但是会根据当前用户设定初始化下一个...,例如当前id=1,插入数据给定id=3,则AUTO_INCREMENT=4 自增长修改时,可以较大,但不能比当前已有的自增长字段小 [sign.jpg]

2.3K30

MySQL online DDL 更改Varchar字段长度

背景 修改Varchar 大小时候。不用锁表,就可以进行操作DDL。这个还得具体查看版本,还有具体情况。下来我们来看一下INnoDBOnline DDL各个操作请求。...所以说在5.6执行varchar更改还是会锁表,copy数据 还有就是就算是5.7 不锁表还是有条件 扩展VARCHAR列大小 ALTER TABLE tbl_name CHANGE...对于VARCHAR大小为0到255个字节列,需要一个长度字节来编码该。对于VARCHAR 大小为256字节或更大列,需要两个长度字节。...总结 在数据量很大时候,varchar通过Online DDL做到快速进行更改字段长度。但是前提条件就是不会进行锁表和copy数据过程。 这个前提条件就是数据库支持5.7及5.7以上。...3.还有就是更改varchar大小小于256

6.2K20

mysql学习总结03 — 列属性(字段属性)

mysql6个列属性:null,default,comment,primary key,unique key,auto_increment 1. NULL 代表字段为空。...) charset utf8; 6. auto_increment 自动增长 通常自动增长用于逻辑主键,只适用于数值,sqlserver中使用identity(1,1) 6.1 自动增长原理 在系统维护一组数据保存当前使用自动增长属性字段...; 6.4 删除自动增长 删除自增长:修改自动增长字段字段属性之后不再保留 auto_increment 即可 6.5 初始设置 在系统中有一组变量维护自增长初始和步长 show variables...like ‘auto_increment%’; 6.6 细节问题 一张表最多只有一个自增长,自增长会上升到表选项 如果数据插入没有触发自增长(给定了数据),那么自增长不会表现,但是会根据当前用户设定初始化下一个...,例如当前id=1,插入数据给定id=3,则AUTO_INCREMENT=4 自增长修改时,可以较大,但不能比当前已有的自增长字段

1.7K30

LayUI switch 开关监听 获取属性更改状态

背景 今天在设计页面时,想使用一下 LayUI switch 控件,在需要更改状态时候进行 ajax请求传输 需要获取其中自定义属性,同时根据服务器返回数据进行状态更改 通过参考文档及网友经验...①. html 代码参考 着重注意 我设置两个属性 lay-filter,switch_goods_id <input type="checkbox" class="switch_checked"...,需要获取当前需要更改状态商品ID,然后通过ajax回调数据,判断是否执行 “确定” 按钮后状态改变即可 layui.use(['form'], function () { var...) { //开关是否开启,true或者false var checked = data.elem.checked; //获取所需属性...) { //开关是否开启,true或者false var checked = data.elem.checked; //获取所需属性

19.5K20

小白学习MySQL - TIMESTAMP类型字段非空和默认属性影响

库时,如果表中含有TIMESTAMP数据类型、缺省为current_timestamp字段,这些表同步任务就都失败了,而另外一些包含了DATETIME数据类型表就同步成功了,不知道这是不是MySQL...,提示为字段updatetime设置了无效默认, ERROR_GENERAL "Handling new table 'test'.'...MySQL是否为TIMESTAMP列默认和NULL处理启用某些非标准行为, https://dev.mysql.com/doc/refman/5.7/en/server-system-variables.html...列会自动使用NOT NULL属性声明,按照上述规则(2),表第一个TIMESTAMP列,如果没有明确地用NULL属性,DEFAULT属性或ON UPDATE属性声明,将自动用DEFAULT CURRENT_TIMESTAMP...' 我们能推断,如果表存在两个及以上这种情况TIMESTAMP类型字段,通过这个软件做同步,建表时候,就会报错,这个可能是软件一个bug,或者存在其他配置控制,但就不在数据库范畴了。

4.6K40

技术分享 | MySQL TIMESTAMP 类型字段非空和默认属性影响

同事说他通过某款商业数据同步软件将一个 MySQL 5.7.28 库同步到 MySQL 5.7.20 库时,如果表中含有 TIMESTAMP 数据类型、缺省为 current_timestamp...字段,这些表同步任务就都失败了,而另外一些包含了 DATETIME 数据类型表就同步成功了,不知道这是不是 MySQL 版本差异导致?...MySQL 是否为 TIMESTAMP 列默认和 NULL 处理启用某些非标准行为: https://dev.mysql.com/doc/refman/5.7/en/server-system-variables.html...(2) 表第一个 TIMESTAMP 列,如果没有明确地用 NULL 属性,DEFAULT 属性或 ON UPDATE 属性声明,将自动用 DEFAULT CURRENT_TIMESTAMP 和 ON...TIMESTAMP 列会自动使用 NOT NULL 属性声明,按照上述规则(2),表第一个 TIMESTAMP 列,如果没有明确地用 NULL 属性,DEFAULT 属性或 ON UPDATE 属性声明

5K20

LinuxChattr命令更改文件属性

在Linux,文件属性是描述文件行为元数据属性。 例如,属性可以指示是否压缩文件或指定是否可以删除文件。...本文介绍了如何使用chattr命令更改Linux文件系统上文件属性。...[OPERATOR]部分可以是以下符号之一: +-加号运算符告诉chattr将指定属性添加到现有属性。 - -负号运算符告诉chattr从现有属性删除指定属性。...= -等于运算符告诉chattr将指定属性设置为唯一属性。 操作符后跟一个或多个要添加或从文件属性删除[ATTRIBUTES]标志。...以下是一些常用属性和相关标志列表: a-设置此属性后,只能以追加模式打开文件进行写入。 A -打开具有该属性文件时,其atime记录不会更改

3.6K20

Mysql8之获取JSON字段

问题是这样,接到一个需求:         要从其它系统数据库中导出一些数据,发现其中有个字段是json字符串,而需求要是该JSON字符串某个key对应value。    ...需求有了,这个如果只用SQL来处理,能否实现呢,SQL能否处理JSON数据呢,这个数据库是Mysql,看了下版本,发现是8.x,Mysql8有json函数支持json处理,so开工探索。..."key": { "innerKey": "This is test" ... }, ... } ]     字段json如List-1所示,对应用json_extract...要注意是该字段不能含有非json字符串,不然json_extract会报错。如下List-2是SQL例子。...select column1,column2,json_extract(,'$[0].key.innerKey') as column3 from table Reference https://dev.mysql.com

6.6K10

Mysql数据类型以及字段属性大盘点

l   Year:存储年份信息,有两位和4位之分 2、  数字数值类型 Bool是tinyint别名,用于赋值0或者1 Bigint:数据类型提供了mysql最大整数范围,取值范围分为有符号:-9223372036854775808...Tinyint:提供了最小整数范围,在-128-127(分清楚范围就不担心数据够不够存储) Decimal,double,float:存储浮点数 3、  字符串类型 Char:提供了固定长度字符串类型...组不同数据 Set:枚举类型,最多可以设置有64个成员 数据类型属性 Auto_increment:自增,每次插入该列会是上次插入+1 Default:默认,当没存入数据时会自动存入默认 Index...:索引 Not null:这样该列就不允许插入null Null:同上面相反 Primary key:主键,该列不可空,不可重复 Unique:该列不允许存储相同 Zerofill:例如int长度为...5那么存入1时候会自动添加00001,就是前面用0补全

89780
领券