修改请求SQL

时间:2017-05-23 12:15:06

标签: php mysql excel

我有一个表SQL,我从Excel文件中填充它。问题是许多领域都在重复。例如:

FOURNITURE      MFC       SERIE  
FOURNITURE      MFC       SERIE 
FOURNITURE      MFC       SERIE 

在我的表中,我发现只有一行。它会跳起来。但是,我需要获得所有的支持。

我的要求是:

if ($articleid == 'DIEPRESTATION' || $articleid == 'DIEDIVBIEN' ||$articleid =='DIEDIVERS')
{
    if(!($this->_db->query("INSERT INTO `article` (`ID_Article`, `Designiation`, `Ident`, `ID_LRU`) VALUES ('".$articleid."', '".$designation."', '".$ident."', '".$IdLRU."');")))
{   
        if ($LRU != 'new')
        {
          return $this->_db->query(" UPDATE  `FLOOSE`.`article` SET  `ID_LRU` =  
          '".$IdLRU."' WHERE  `article`.`ID_Article` =  '".$articleid."' AND  
            `article`.`Designiation` =  '".$designation."' AND  
             `article`.`Ident` =  '".$ident."' LIMIT 1 ;");
        } 
        else {
                return false;
            }
        } else{
            return TRUE;
        }
    }

我认为我在两个表列上有一个唯一的键约束。 screen sheet of the structure of my table

如何更改或测试以恢复所有线路?我删除了唯一键约束? 谢谢。

1 个答案:

答案 0 :(得分:1)

是的,您的列确实有唯一约束。更重要的是,ID_ArticleDesigniation的合成是您的主键,根据定义也是唯一的。

你应该

  1. 删除该主键:ALTER TABLE article DROP PRIMARY KEY;
  2. 添加另一个字段(将其命名为id以遵守约定),并将其设置为具有自动增量的主键:ALTER TABLE article ADD id INT PRIMARY KEY AUTO_INCREMENT;