您可以将INSERT修改为如下形式:
INSERT INTO tablename (tag)SELECt $tagFROM tablenameWHERe NOT EXISTS( SELECt tag FROM tablename WHERe tag = $tag)LIMIT 1
如果
$tag您要添加的标签(正确地加上引号,或者当然是占位符)在哪里?如果标签已经存在,则该方法甚至不会触发INSERT(以及随后的自动增量浪费)。您可能会想出比这更好的SQL,但是以上方法可以解决问题。
如果您的表已正确索引,则用于存在性检查的额外SELECT将很快,并且数据库无论如何都将必须执行该检查。
但是,这种方法不适用于第一个标签。您可以在标签表中植入您认为最终将被使用的标签,也可以对空表进行单独检查。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)