gpt4 book ai didi

MySQL 索引检查顺序

转载 作者:行者123 更新时间:2023-11-29 00:17:12 25 4
gpt4 key购买 nike

我正在运行 MySQL 我有一个如下所示的简单表格:

CREATE TABLE `new_schema`.`test1` (
`id` INT NOT NULL AUTO_INCREMENT,
`unique1` VARCHAR(45) NULL,
`unique2` VARCHAR(45) NULL,
PRIMARY KEY (`id`),
UNIQUE INDEX `unique1_UNIQUE` (`unique1` ASC),
UNIQUE INDEX `unique2_UNIQUE` (`unique2` ASC));

然后我添加这样一行:

INSERT INTO `new_schema`.`test1` (`unique1`, `unique2`) VALUES ('x', 'x');

然后我在唯一列中添加具有相同值的另一行:

INSERT INTO `new_schema`.`test1` (`unique1`, `unique2`) VALUES ('x', 'x');

然后我将按预期收到此错误:

11:54:06    INSERT INTO `new_schema`.`test1` (`unique1`, `unique2`) VALUES ('x', 'x')   Error Code: 1062. Duplicate entry 'x' for key 'unique1_UNIQUE'  0.203 sec

我的问题是,如何更改 MySQL 检查我输入的唯一值的顺序。因此,在我上面的例子中,我提供了两个违反唯一条目的行为(unique1 和 unique2),但我希望它首先检查 unique2,所以错误将是这样的:

11:54:06    INSERT INTO `new_schema`.`test1` (`unique1`, `unique2`) VALUES ('x', 'x')   Error Code: 1062. Duplicate entry 'x' for key 'unique2_UNIQUE'  0.203 sec

谢谢,标记

最佳答案

你试过那样改变姿势吗

    UNIQUE KEY INDEX `unique_UNIQUE` (`unique2`,`unique1`)

像那样:

 CREATE TABLE `new_schema`.`test1` (
`id` INT NOT NULL AUTO_INCREMENT,
`unique1` VARCHAR(45) NULL,
`unique2` VARCHAR(45) NULL,
PRIMARY KEY (`id`),
UNIQUE KEY INDEX `unique_UNIQUE` (`unique2`,`unique1`)
);

关于MySQL 索引检查顺序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22558154/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com