我有一个插入语句,可将标签插入表中。每个标签都有一个唯一的id
(用于引用)、一个vid_id
(用于匹配视频)和一个name
(例如tag1) 。
重复的条目将被视为具有 vid_id
和 name
的现有条目,与插入的内容相同。
如何停止插入与 2/3 字段匹配的重复条目?
$sql="INSERT into tags (id,vid_id,name) VALUES (?,?,?)";
$stmt16 = $conn->prepare($sql);
$result=$stmt16->execute(array($id,$vid_id,$tag));
最佳答案
您只需创建一个由 vid_id
和 name
组成的唯一约束即可,一切就绪!
这就是你的做法:
alter table tags add unique (vid_id, name);
创建后,您的唯一约束将禁止插入在给定您的唯一定义(涉及的字段)的情况下会产生重复行的值。
更新也是如此(啊,你想过吗?):如果你尝试更新一条记录并且更新将产生重复记录,则唯一约束将阻止它。
关于mysql - 通过匹配字段的子集来防止重复条目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6513115/