我有一个MySQL8.x表,由于主键是自动递增的,所以每一行都是唯一的。列transactionID用于存储需要与行/记录耦合的外部transactionID。
然而,一个新的需求出现了,我们想用相同的transactionID创建一个新行。我在考虑添加一个包含事务的GUID的新列。
这是个好主意吗?这会很慢吗?还有没有别的想法把uuid当作字符串?MySQL 8.0添加了可以将UUID存储为数字的UUID_TO_BIN和BIN_TO_UUID函数。
CREATE TABLE `testme`.`new_table` (
`ID` INT NOT NULL AUTO_INCREMENT,
`transactionID` INT NOT NULL,
`maybe_uuid` VARCHAR(45) NOT NULL,
PRIMARY KEY (`ID`));
ALTER TABLE `testme`.`new_table`
ADD UNIQUE INDEX `index2` (`transactionID` ASC, `maybe_uuid` ASC) VISIBLE;
;发布于 2019-05-22 20:42:25
GUID不适合用作主键,原因有很多,我不会在这里详细介绍,而且使用已经存在的auto_increment键会更快。但是,如果您还需要存储GUID,那么只需为此添加另一列是完全合理的。您可以使用您提到的两个函数。
https://stackoverflow.com/questions/56256524
复制相似问题