Dev*_*One 1 mysql constraints unique
假设我有一张桌子:
CREATE TABLE `ml_vendor_refs` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`ml_id` int(11) NOT NULL,
`ven_id` int(11) NOT NULL,
`designator` int(4) NOT NULL,
`telco` tinyint(1) NOT NULL DEFAULT '0',
PRIMARY KEY (`id`)
) ENGINE=MyISAM AUTO_INCREMENT=5 DEFAULT CHARSET=latin1
Run Code Online (Sandbox Code Playgroud)
如你所见,"id"是主要的和AI.但是,我希望能够根据'ml_id'和'telco'的父级添加几行"指示符",而这些行不会重复.例如:
"id" "ml_id" "ven_id" "designator" "telco"
"1" "5144" "3" "1" "0"
"2" "5144" "7" "2" "0"
"3" "5144" "44" "3" "0"
"4" "5144" "49" "4" "0"
Run Code Online (Sandbox Code Playgroud)
对于"ml_id"和布尔"telco"的每个实例,我希望能够拥有唯一且唯一独特的"指示符".合理?
谢谢
您可以拥有一个UNIQUE索引而不是跨多个列.结果将是一个限制,使得相同的值可以多次出现在一列中,但是相同的值组合不能出现在指定的列中.
CREATE TABLE `ml_vendor_refs` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`ml_id` int(11) NOT NULL,
`ven_id` int(11) NOT NULL,
`designator` int(4) NOT NULL,
`telco` tinyint(1) NOT NULL DEFAULT '0',
PRIMARY KEY (`id`),
UNIQUE KEY `designators` (`designator`,`ml_id`,`telco`)
) ENGINE=MyISAM AUTO_INCREMENT=5 DEFAULT CHARSET=latin1
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
757 次 |
| 最近记录: |