【发布时间】:2013-05-07 18:02:37
【问题描述】:
我正在编写一个需要生成唯一代码的 PHP 脚本。这些代码由管理员用户生成,一次 100K。我有一个生成代码的算法,但是重复项进入混合的可能性很小——大约 0.001% 的机会,但它仍然可能导致问题。
我正在寻找运行批量插入语句:
INSERT INTO coupons ( 'code' ) VALUES ('code1'),('code2'),('code3');
这将有 100K 代码。我想知道的是它们是否都是唯一的,除了让我们说 code100 将插入在该代码处停止,还是会继续插入其余的插入并通过警告让我知道。
如果它在第一次复制时最终失败,我该怎么办?性能不是一个大问题,因为它是一个管理区域,我可以关闭这个过程直到它完成。
【问题讨论】:
-
我最终创建了一个类来检查生成的代码,然后只插入唯一的代码,然后再次开始该过程,直到金额得到满足。在性能方面它很好,因为它可以轻松地在后台插入几百万条记录,而不会让公共网站感到压力。
-
我也有类似的问题。您能否详细说明您是如何做到这一点的?
标签: mysql sql bulkinsert unique-constraint