不是复制安全的函数

时间:2011-12-15 23:14:32

标签: mysql replication string-length

我的一位同事说mysql中的Length()函数不是复制安全的。此函数用于update语句。这是真的?在编写查询并将复制考虑在内时,我们还应该考虑什么呢

1 个答案:

答案 0 :(得分:2)

因为您复制的表也可以使用不同的字符集。主站和从站之间的表不需要完全相同,具有相同的索引等。

mysql> create table replic(
field1 varchar(20) character set latin1,
field2 varchar(20) character set utf16,
field3 varchar(20) character set utf32);
Query OK, 0 rows affected (0.07 sec)

mysql> insert into replic values('Adrian', 'Adrian', 'Adrian');
Query OK, 1 row affected (0.07 sec)

mysql> select length(field1), length(field2), length(field3) from replic;
+----------------+----------------+----------------+
| length(field1) | length(field2) | length(field3) |
+----------------+----------------+----------------+
|              6 |             12 |             24 |
+----------------+----------------+----------------+
1 row in set (0.00 sec)