我有一张能储存多个电话号码的桌子。虽然相同的数字可以存在于表中,但我希望确保用户不能拥有相同的数字两次。
**Valid**
id0001 : 5555550000
id0001 : 5555550001
id0002 : 5555550000
**Invalid**
id0001 : 5555550000
id0001 : 5555550000
id0002 : 5555550001不确定最好的方法。我应该创建一个函数并将其作为约束应用吗?
我应该改变一下桌子的结构吗?
CREATE TABLE `callback` (
`f_unti_id` INT(10) NOT NULL,
`phone_number` varchar(10) NOT NULL
);
ALTER TABLE `callback` ADD CONSTRAINT `callback_fk0` FOREIGN KEY (`f_unti_id`) REFERENCES `unit`(`unit_id`);发布于 2017-03-04 11:25:03
你只需要一个合成物。(复合或多列) PRIMARY KEY:
CREATE TABLE callback
(
f_unti_id varchar(10) NOT NULL,
phone_number varchar(10) NOT NULL,
-- Compound PK
PRIMARY KEY(f_unti_id, phone_number)
);(实际上,多列上的UNIQUE约束就足够了。检查如何为MySQL中的多列指定唯一约束?)。
https://dba.stackexchange.com/questions/166171
复制相似问题