我得到了错误
“错误代码1697:分区p0的值必须具有int类型”
我也试过了 FLOOR(0x080000)
产生了同样的错误,我也试过了 INT(0x080000)
产生了语法错误。
CREATE TABLE `mytable`.`tbl_mac` (
`mac` MEDIUMINT(6) UNSIGNED NOT NULL,
`product` TINYINT(1) NULL,
PRIMARY KEY (`mac`)
)
PARTITION BY RANGE (mac)
(
PARTITION p0 VALUES LESS THAN (0x080000),
PARTITION p1 VALUES LESS THAN (0x090000),
PARTITION p2 VALUES LESS THAN (0xFFFFFF)
);
谢谢你的帮助。
1条答案
按热度按时间bprjcwpo1#
根据文件
https://dev.mysql.com/doc/refman/8.0/en/hexadecimal-literals.html
在数字上下文中,mysql将十六进制文本视为bigint(64位整数)。要确保十六进制文字的数字处理,请在数字上下文中使用它。方法包括添加0或使用cast(。。。作为未签名)。例如,默认情况下,分配给用户定义变量的十六进制文字是二进制字符串。要将值指定为数字,请在数字上下文中使用它:
所以,解决方法是使用cast