我正在运行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
谢谢, 标记
答案 0 :(得分:1)
你试过像那样改变位置
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`)
);