pt-online-schema-change和默认值关系
在使用pt-online-schema-change会遇到如下的错误导致表修改失败:
Copying rows caused a MySQL error 1364,Message: Field 'XXX' doesn't have a default value
例子1:
#修改的SQL:
ALTER TABLE `live_comment` ADD `sourcefrom` VARCHAR(15) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL COMMENT '来源标志' AFTER `ip`, ADD `type` INT UNSIGNED NOT NULL DEFAULT '0' COMMENT '评论类型' AFTER `sourcefrom`, ADD INDEX (`type`)
错误信息为:
`sportslive`.`live_comment` was not altered.
Error copying rows from `sportslive`.`live_comment` to `sportslive`.`_live_comment_new`: Copying rows caused a MySQL error 1364:
Level: Warning
Code: 1364
Message: Field 'sourcefrom' doesn't have a default value
对应的表结构为:
CREATE TABLE `sportslive`.`_live_comment_new` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`live_id` int(11) NOT NULL DEFAULT '0',
`content` varchar(200) NOT NULL DEFAULT '',
`reply_uid` bigint(20) NOT NULL DEFAULT '0',
`reply_username` varchar(30) NOT NULL DEFAULT '',
`reply_content` varchar(200) NOT NULL DEFAULT '',
`reply_profile_pic` varchar(100) NOT NULL DEFAULT '',
`parent_id` int(11) NOT NULL,
`uid` bigint(20) NOT NULL DEFAULT '0',
`username` varchar(30) NOT NULL DEFAULT '',
`profile_pic` varchar(100) NOT NULL DEFAULT '',
`addtime` datetime NOT NULL,
`ip` varchar(15) NOT NULL DEFAULT '',
`prior` tinyint(4) NOT NULL DEFAULT '0' COMMENT 'xxxx‘,
PRIMARY KEY (`id`),
KEY `live_id` (`live_id`)
) ENGINE=InnoDB AUTO_INCREMENT=296173 DEFAULT CHARSET=utf8
例子2:
修改的SQL:
ALTER TABLE `mb_post_spider_1209` CHANGE `category` `category` VARCHAR(8) NOT NULL COMMENT '', CHANGE `reposts_count` `reposts_count` INT(11) UNSIGNED NOT NULL DEFAULT '0' COMMENT '', CHANGE `heat` `heat` DECIMAL(8,5) UNSIGNED NOT NULL DEFAULT '0.00000' COMMENT '', CHANGE `spider_date` `spider_date` INT(8) UNSIGNED NOT NULL DEFAULT '0' COMMENT '抓取时间', CHANGE `main_cat` `main_cat` TINYINT(1) NOT NULL COMMENT '', CHANGE `sub_cat` `sub_cat` TINYINT(1) NOT NULL COMMENT '', CHANGE `state` `state` TINYINT(1) UNSIGNED NOT NULL DEFAULT '0' COMMENT '', CHANGE `bid` `bid` BIGINT(20) UNSIGNED NOT NULL DEFAULT '0' COMMENT '', CHANGE `bname` `bname` VARCHAR(32) NOT NULL COMMENT ''
Warning信息如下:
Error copying rows from `mb_content`.`mb_post_spider_1209` to `mb_content`.`_mb_post_spider_1209_new`: Copying rows caused a MySQL error 1048:
Level: Warning
Code: 1048
Message: Column 'bname' cannot be null
http://www.mysqlperformanceblog.com/2012/06/21/pt-online-schema-change-and-default-values/
pt-online-schema-change和默认值关系的更多相关文章
- bootstrap3中select2的默认值和下拉框的禁用
最近做项目用到了select2插件,需求中需要给下拉框设置默认值之后,禁用下拉框,我开始的写法是这样的 <script type="text/javascript"> ...
- 8. react 基础 - props 默认值和类型限制 与 Props , State , render 函数 关系
一. PropTypes 与 DefaultProps 官方文档 1. PropTypes 属性校验 引入 PropTypes import PropTypes from 'prop-types'; ...
- Mybatis-plus 实体类继承关系 插入默认值
在实际开发中,会定义一些公共字段,而这些公共字段,一般都是在进行操作的时候由程序自动将默认值插入.而公共的字段一般会被封装到一个基础的实体类中,同时实体类中会实现相应的getter setter 方法 ...
- c3p0配置之preferredTestQuery参数默认值探秘
http://www.mchange.com/projects/c3p0/ c3p0的配置参数preferredTestQuery用于检测数据库连接测试,检测数据库是否能连接成功. Default: ...
- SQL语句增删改字段、表、修改默认值
收集转载: 1.修改字段,默认值 .修改字段默认值 alter table 表名 drop constraint 约束名字 ------说明:删除表的字段的原有约束 alter table 表名 ad ...
- select2初始化默认值
之前用select2初始化默认值使用了select2('val','1'),这样做没问题,但只能用在单选上,多选的话,即使将val后面的值改成数组['0', '2']这种形式也没用. <scri ...
- Python函数参数默认值的陷阱和原理深究"
本文将介绍使用mutable对象作为Python函数参数默认值潜在的危害,以及其实现原理和设计目的 本博客已经迁移至: http://cenalulu.github.io/ 本篇博文已经迁移,阅读全文 ...
- [转]Hibernate设置时间戳的默认值和更新时间的自动更新
原文地址:http://blog.csdn.net/sushengmiyan/article/details/50360451 Generated and default property value ...
- MySQL设置当前时间为默认值的方法
方法一.是用alert table语句: 复制代码代码如下: use test_db1; create table test_ta1( id mediumint(8) unsigned not nul ...
随机推荐
- 如何判断Linux 是32位还是64位
.运行 'uname -m' 命令 上面的命令内涵太多了,可以用这个参数直指人心:'uname -m' . 例如,在我的系统里,它显示了以下信息: $ uname -m i686
- FirstIDL
pro FIRSTIDL ;控制台输出 print,'first IDL' ;控制台输出 void=dialog_message('Hello,IDL world!',/information) en ...
- List之Union(),Intersect(),Except() 即并集,交集,差集运算。
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.T ...
- 改变ListBoxItem选中的颜色
改变ListBoxItem主要是改变的style 下面直接看代码吧!!! <Style TargetType="{x:Type ListBoxItem}"> <S ...
- Windows 10「设置」应用完整MS-Settings快捷方式汇总
分类 设置名称 快捷方式 系统 显示 ms-settings:display 通知和操作 ms-settings:notifications 平板电脑模式 ms-settings:tabletmode ...
- mysql多实例-主从复制安装
安装环境:Centos6.5 mysql版本:mysql-5.5.32.tar.gz 一:安装前准备: 1.安装一些依赖库 yum install cmake gcc gcc-c++ ncurses- ...
- 我的第一个python web开发框架(10)——工具函数包说明(一)
PS:原先是想直接进入功能开发,要用到什么函数时再创建,这样也容易熟悉每个函数的由来和使用方法,但考虑到这样操作,到时会经常在不同文件间切换,不好描述,容易造成混乱,所以还是使用函数库这种方式来说明. ...
- http服务详解(2)——httpd2.2的配置文件常见设置
摘要:一个服务的配置文件非常重要,弄懂配置文件是熟练掌握服务的必要前提. 一.httpd-2.2常见文件介绍 (1)配置文件: 主配置文件尽量别改,改自己的子配置文件 /etc/httpd/conf/ ...
- 【前端】Require.js使用方法总结
一.为什么要使用require.js 首先一个页面如果在加载多个js文件的时候,浏览器会停止网页渲染,加载文件越多,网页失去响应的时间就会越长:其次,由于js文件之间存在依赖关系,因此必须严格保证加载 ...
- Vue 国际化 vue-i18n 用法详解
vue-i18n 仓库地址:https://github.com/kazupon/vue-i18n 兼容性: 支持 Vue.js 2.x 以上版本 安装方法:(此处只演示 npm) npm insta ...