MySQL 函数和运算符:其他函数
跳到导航
跳到搜索
Name | Description |
---|---|
ANY_VALUE() | 禁止拒绝 ONLY_FULL_GROUP_BY 值 |
DEFAULT() | 返回 table 列的默认值 |
INET_ATON() | 返回 IP 地址的数值 |
INET_NTOA() | 从数值返回 IP 地址 |
INET6_ATON() | 返回 IPv6 地址的数值 |
INET6_NTOA() | 从数值返回 IPv6 地址 |
IS_IPV4() | 参数是否为 IPv4 地址 |
IS_IPV4_COMPAT() | 参数是否为 IPv4 兼容地址 |
IS_IPV4_MAPPED() | 参数是否为 IPv4Map 的地址 |
IS_IPV6() | 参数是否为 IPv6 地址 |
MASTER_POS_WAIT() | 阻塞直到从站读取并应用所有更新到指定位置 |
NAME_CONST() | 使列具有给定名称 |
SLEEP() | 睡觉几秒钟 |
UUID() | 返回通用唯一标识符(UUID) |
UUID_SHORT() | 返回一个整数通用标识符 |
VALUES() | 定义在 INSERT 期间要使用的值 |
【说明:略】
UUID():返回根据 RFC 4122“通用唯一标识符(UUID)URN 命名空间”(http://www.ietf.org/rfc/rfc4122.txt)生成的通用唯一标识符(UUID)。
- UUID 被设计为在空间和时间上全局唯一的数字。即使对两个未连接的独立设备执行了对UUID()的两次调用,它们也会产生两个不同的值。
- 尽管UUID()值旨在唯一,但不一定是不可猜测或不可预测的。如果需要不可预测性,则应以其他方式生成 UUID 值。
UUID()返回一个符合 RFC 4122 中描述的 UUID 版本 1 的值。该值是一个 128 位数字,表示为“aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee”格式的五个十六进制数字的utf8字符串:
- 前三个数字是从时间戳的低,中和高部分生成的。较高的部分还包括 UUID 版本号。
- 万一时间戳值失去单调性(例如,由于夏令时),第四个数字将保留时间唯一性。
- 第五个数字是提供空间唯一性的 IEEE 802 节点号。如果后者不可用(例如,因为主机设备没有以太网卡,或者不知道如何在主机 os 上找到接口的硬件地址),则将替换为一个随机数。在这种情况下,不能保证空间唯一性。但是,碰撞应该非常低。
- 仅在 FreeBSD,Linux 和 Windows 上才考虑接口的 MAC 地址。在其他 os 上,MySQL 使用随机生成的 48 位数字。
mysql> SELECT UUID();
-> '6ccd780c-baba-1026-9564-5b8c656024db'
- 此功能对于基于语句的复制不安全。如果在“binlog_format”设置为“STATEMENT”时使用此功能,则会记录一条警告。【???】
UUID_SHORT():以 64 位无符号整数形式返回“短”通用标识符。 UUID_SHORT()返回的值与UUID()函数返回的字符串格式的 128 位标识符不同,并且具有不同的唯一性属性。如果满足以下条件,则UUID_SHORT()的值保证是唯一的:
- 当前服务器的server_id值在 0 到 255 之间,并且在您的主服务器和从服务器中是唯一的
- 您不会在mysqld重启之间为服务器主机设置系统时间
- 在mysqld重新启动之间,您每秒平均调用UUID_SHORT()次少于 1600 万次
UUID_SHORT()返回值的构造方式如下:
(server_id & 255) << 56
+ (server_startup_time_in_seconds << 24)
+ incremented_variable++;
mysql> SELECT UUID_SHORT();
-> 92395783831158784
- UUID_SHORT()不适用于基于语句的复制。【???】