gpt4 book ai didi

php - 使用 MySQL 或 PHP 防止重复条目的正确方法

转载 作者:搜寻专家 更新时间:2023-10-30 23:07:09 25 4
gpt4 key购买 nike

我有一个 song 表,其中包含 songCategorysongName 列。 songCategorysongName 的组合在数据库级别设置为唯一。所以基本上即使 php 试图插入重复条目数据库也不会允许。

问题是,项目具有用户可以一次插入一堆歌曲的功能。如您所知,大数据的重复记录检查需要很长时间:对于每首歌曲,我必须查询是否有categoryID=xsongName=y 的歌曲。所以我需要你的建议来解决这个问题,而不需要额外的重复检查。

我对此没什么想法,但我不太确定它们是否可行:

  • 无论如何我们都可以插入记录,如果出现数据库错误,我们只需继续 foreach循环。
  • 我们可以在每次插入后触发数据库中的一些函数来检查和删除重复的行(我没有使用自定义 mysql 函数的经验)

顺便说一句,我正在使用 Yii Framework 和 MySQL 数据库。

你的建议?

最佳答案

您可以使用临时表。让 php 应用程序将所有内容插入临时表,然后调用具有这种逻辑的查询。

insert into mainTable 
(field1, field2, etc)
select field1, field2, etc
from tempTable
where (subquery to check for existing records goes here)

或者您可以使用 try/catch。我不知道 php 语法,但由于许多其他语言可以做这种事情,我希望 php 也能做到。

try
code to insert record
catch
if the error code is the one for duplicate records, do nothing.
if it's something else, handle it accordingly.

关于php - 使用 MySQL 或 PHP 防止重复条目的正确方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25588344/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com