可参考链接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
再看下实际执行的结果:
点击(此处)折叠或打开
- root@localhost 16:57: sbtest> select * from test;
- +------+-------+
- | id | text |
- +------+-------+
- | 1 | ceshi |
- +------+-------+
- 1 row in set (0.00 sec)
- root@localhost 16:57: sbtest> update test set id=2 and text='fail';
- Query OK, 1 row affected (0.00 sec)
- Rows matched: 1 Changed: 1 Warnings: 0
- root@localhost 16:57: sbtest> select * from test;
- +------+-------+
- | id | text |
- +------+-------+
- | 0 | ceshi |
- +------+-------+
- 1 row in set (0.00 sec)
表结构如下
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,没有被主库的覆盖。