如何解决重复的mySQL条目?

时间:2016-10-27 15:53:44

标签: mysql

我从外部资源中删除了统计信息,但是外部源已经改变了处理引起我问题的事情的方式,其他一切正常但数据库的1部分给了我重复的条目,因为没有正在被拉动数据库输入0的值,所以下一个字段的值也会为0,我尝试了自动增量,但我仍然有一个重复的条目。

-- phpMyAdmin SQL Dump
-- version 3.4.11.1deb2+deb7u6
-- http://www.phpmyadmin.net
--
-- Host: localhost
-- Generation Time: Oct 27, 2016 at 02:44 AM
-- Server version: 5.5.52
-- PHP Version: 5.6.26-1~dotdeb+zts+7.1

SET SQL_MODE="NO_AUTO_VALUE_ON_ZERO";
SET time_zone = "+00:00";


/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
/*!40101 SET NAMES utf8 */;

--
-- Database: `forum`
--

-- --------------------------------------------------------

--
-- Table structure for table `xf_yfl_rival_stats`
--

CREATE TABLE IF NOT EXISTS `xf_yfl_rival_stats` (
  `match_id` bigint(30) NOT NULL,
  `player_ea_id` bigint(60) NOT NULL,
  `persona_name` varchar(50) NOT NULL,
  `club_id` bigint(20) NOT NULL,
  `assists` int(2) NOT NULL,
  `cleansheetsany` int(2) NOT NULL,
  `cleansheetsdef` int(2) NOT NULL,
  `cleansheetsgk` int(2) NOT NULL,
  `goals` int(2) NOT NULL,
  `goalsconceded` int(2) NOT NULL,
  `mom` int(1) NOT NULL,
  `passattempts` int(3) NOT NULL,
  `passesmade` int(3) NOT NULL,
  `pos` int(3) NOT NULL,
  `rating` double(4,2) NOT NULL,
  `redcards` int(2) NOT NULL,
  `saves` int(3) NOT NULL,
  `shots` int(3) NOT NULL,
  `tackleattempts` int(3) NOT NULL,
  `tacklesmade` int(3) NOT NULL,
  `yellowcards` int(2) NOT NULL DEFAULT '0',
  PRIMARY KEY (`player_ea_id`),
  UNIQUE KEY `match_id` (`match_id`,`player_ea_id`),
  KEY `club_id` (`club_id`),
  KEY `player_ea_id` (`player_ea_id`),
  KEY `match_id_2` (`match_id`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1;

/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */;
/*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */;
/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */;

我收到字段player_ea_id的重复条目有没有办法绕过这个?

我对mySQL的理解并不是最好的,例如我拉下了match_id或persona_name,这两个字段对于玩家都有相同的条目,但是player_ea_id应该是唯一的,我该如何解决此?

2 个答案:

答案 0 :(得分:0)

我没看到你在哪里使用AUTO_INCREMENT。但如果您没有从您的来源获得该列,那么这确实是您所需要的。

将表格创建的player_ea_id行更改为此。

`player_ea_id` bigint(60) NOT NULL AUTO_INCREMENT,

答案 1 :(得分:0)

@Strawberry,该数据库的每个其他部分都有效,它从EA体育标题FIFA 17收集统计数据,4.2与球员整体比赛评分相关,效果很好。

@TheValyreanGroup我已经尝试过自动增量它仍然最终给我一个重复的错误,虽然不是在0但是在6例如10或15,只要它决定分解。我可以运行一个查询,并告诉你它在自动增量上的作用与你现在的情况相比如何?