Php 在mysql表中插入重复记录,尽管索引是唯一的

Php 在mysql表中插入重复记录,尽管索引是唯一的,php,mysql,sql,redbean,Php,Mysql,Sql,Redbean,我正在使用redbeanPHP ORM和mysql。我有下表: CREATE TABLE `mast` ( `id` int(11) unsigned NOT NULL AUTO_INCREMENT, `note` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL, `geolocation` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL, `location` varchar(255

我正在使用redbeanPHP ORM和mysql。我有下表:

CREATE TABLE `mast` (
 `id` int(11) unsigned NOT NULL AUTO_INCREMENT,
 `note` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
 `geolocation` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
 `location` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
 `zip` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
 `state` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
 `app` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
 PRIMARY KEY (`id`),
 UNIQUE KEY `UQ_84a93b55f688c94f73092dba1b9590c41a92cbf5` (`app`,`geolocation`)
) ENGINE=InnoDB AUTO_INCREMENT=98 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci
我想在“mast”表中插入记录,前提是它们对于上面列出的两个字段都是唯一的。换句话说,如果“地理位置”或“应用程序”是重复的,我不想插入关联的记录

我使用以下php代码使用rebean插入记录:

      $resultBean= R::dispense('mast');
      $resultBean ->import($resultsarray);

               try {

                 $id = R::store($resultBean); // TRY TO INSERT INTO MAST

               } catch (Exception $exc) {

               } 
插入正在进行,但我注意到至少在“app”字段中插入了重复记录。我得到的是一个外观正常的记录,而除了“app”字段有一个重复条目外,该副本的所有值都为零或空

我根本不希望表中有重复的条目。如何防止它们被插入

如果“地理位置”或“应用程序”是重复的,我 不希望插入关联的记录

仅防止对
app
geolocation
重复

如果要防止其中任何一个单独复制,请为每个单独添加单独的索引,即

CREATE UNIQUE INDEX UQ_app ON mast (app);
CREATE UNIQUE INDEX UQ_geolocation ON mast (geolocation);
如果“地理位置”或“应用程序”是重复的,我 不希望插入关联的记录

仅防止对
app
geolocation
重复

如果要防止其中任何一个单独复制,请为每个单独添加单独的索引,即

CREATE UNIQUE INDEX UQ_app ON mast (app);
CREATE UNIQUE INDEX UQ_geolocation ON mast (geolocation);

谢谢你的解释。谢谢你的解释。