mysql - 复制不安全的函数

标签 mysql replication string-length

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

最佳答案

因为您正在复制的表也可能具有不同的字符集。不要求master和slave之间的表完全一样,有相同的索引等。

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)

关于mysql - 复制不安全的函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8527932/

相关文章:

mysql - MySQL Replication Server 可以启用日志查询吗?

mongodb - 与删除的成员形成一个新的副本集

C# Linq 有四个表和一个并不总是需要的外键

php - 如何根据传递的变量发布数据

mysql - 如何查找mysql DB是slave?

Java string .length() X 不适合 DB2 varchar(X)

java - 在Java中计算字符串的显示宽度

Jquery按属性长度选择

mysql - 从 Aurora Serverless 导出到 S3

php - 将数据插入表中并使用 SELECT 的结果