遇到的bug

1.alter ignore table 添加unique key不生效的问题
 可参考链接http://guduwhuzhe.iteye.com/blog/1762593
2.update语句在语法不规范的情况下不报错,并且更新了一个错误的值。
 mysql版本是官方的5.5.24
  先看表结构
CREATE TABLE `test` (
  `id` int(11) DEFAULT NULL,
  `text` varchar(20) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8
再看下实际执行的结果:

点击(此处)折叠或打开

  1. root@localhost 16:57: sbtest> select * from test;
  2. +------+-------+
  3. | id | text |
  4. +------+-------+
  5. | 1 | ceshi |
  6. +------+-------+
  7. 1 row in set (0.00 sec)

  8. root@localhost 16:57: sbtest> update test set id=2 and text='fail';
  9. Query OK, 1 row affected (0.00 sec)
  10. Rows matched: 1 Changed: 1 Warnings: 0

  11. root@localhost 16:57: sbtest> select * from test;
  12. +------+-------+
  13. | id | text |
  14. +------+-------+
  15. | 0 | ceshi |
  16. +------+-------+
  17. 1 row in set (0.00 sec)
此类的update set里面包含“and”错误语法的,在oracle数据库测试时直接报错。mysql无报错,并update了一个错误的值。

 

表结构如下
CREATE TABLE `user` (
  `name` varchar(128) NOT NULL,
  `created` int(10) DEFAULT NULL,
  PRIMARY KEY (`name`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8
先在从库insert一条数据
insert into user values('test5',123);
再在主库上执行此语句
insert into user values('test5',456);
同步没报1062的错误,从库的created字段还是123,没有被主库的覆盖。
表结构如下
CREATE TABLE `user` (
  `name` varchar(128) NOT NULL,
  `created` int(10) DEFAULT NULL,
  PRIMARY KEY (`name`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8
先在从库insert一条数据
insert into user values('test5',123);
再在主库上执行此语句
insert into user values('test5',456);
同步没报1062的错误,从库的created字段还是123,没有被主库的覆盖。
表结构如下
CREATE TABLE `user` (
  `name` varchar(128) NOT NULL,
  `created` int(10) DEFAULT NULL,
  PRIMARY KEY (`name`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8
先在从库insert一条数据
insert into user values('test5',123);
再在主库上执行此语句
insert into user values('test5',456);
同步没报1062的错误,从库的created字段还是123,没有被主库的覆盖。


上一篇:MySQL自动化安装脚本


下一篇:关于mysql cluster适用场景的分析