MySQL双列唯一键

时间:2017-12-22 13:48:52

标签: mysql database key unique-key

我知道我可以制作两列唯一键,但这并不是我想要的。

我希望例如col1='1', col2='2',然后不能有col1='1', col2='2'的另一行,但完全可以执行以下操作:

+--------+--------+
|  col1  |  col2  |
+--------+--------+
|    1   |    1   |
|    1   |    2   |
|    2   |    1   |
|    2   |    2   |
+--------+--------+

虽然这是不可能的:

+--------+--------+
|  col1  |  col2  |
+--------+--------+
|    1   |    1   |
|    1   |    1   |
+--------+--------+

制作两个唯一键不是一个选项,因为col1='1', col2='1'col1='1', col2='2' col1是相同的,如果两者都是唯一键,则不允许这样做。

2 个答案:

答案 0 :(得分:4)

您需要<select multiple="true" data-bind="select2: { dropdownAutoWidth: false, width: '300px', data: myOptions}, selectedOptions: selectedOptions"></select> ko.validation.rules['minArrayLength'] = { validator: function (obj, params) { return obj.length >= params.minLength; }, message: "Array does not meet minimum length requirements" }; ko.validation.registerExtenders(); model.selectedOptions = ko.observableArray([]).extend({ minArrayLength: { params: { minLength: 1 }, message: 'Please specify at least one error code.', onlyIf: function () { return self.evaluation() == 'Not OK'; } } });

composite unique index

答案 1 :(得分:1)

您只需要在两列col1col2之间声明唯一索引:

CREATE TABLE Table1
(
  `col1` int, 
  `col2` int,
   UNIQUE `unique_index`(`col1`, `col2`)
);

如果您尝试将1, 1插入col1和col2,则会出现以下错误:

Duplicate entry '1-1' for key 'unique_index'

你可以尝试自己here