我有一个插入语句,可以将标签插入表中。每个标记都有唯一的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));
答案 0 :(得分:2)
你只需要创建一个由vid_id
和name
组成的独特约束,你就完全了!
您就是这样做的:
alter table tags add unique (vid_id, name);
一旦创建,您的唯一约束将禁止插入值,这些值将根据您的唯一定义(涉及的字段)产生重复行。
对于更新也是如此(啊,你有没有?):如果你试图更新记录并且更新会产生重复,那么唯一约束会阻止它。
答案 1 :(得分:1)
在这两列上创建一个唯一索引。