私はテーブルSQLを持っており、Excelファイルから入力します。問題は多くのフィールドが繰り返されることです。例:変更依頼SQL
FOURNITURE MFC SERIE
FOURNITURE MFC SERIE
FOURNITURE MFC SERIE
ここで私のテーブルには、1行しか見つかりません。それはすべての残りの部分を飛び越えます。しかし、私はすべての行を取得する必要があります。
私の要求は次のとおりです。
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;
}
}
私は2つのテーブルの列に一意キー制約を持っていると思います。
どのように変更したり、すべての行を回復するためのテストをすることができますか?私は一意のキー制約を削除しますか? ありがとうございます。
こんにちは、私はあなたの質問を理解していません。あなたは、*すべての行を取得する必要があると書いています*。 'SELECT'クエリがそれを行います。しかし、あなたのサンプルコードは 'UPDATE'と' INSERT'クエリを示しています。あなたのDBMS内のすべての一致する行を 'UPDATE'しようとしていますか?もしそうなら、なぜあなたの 'UPDATE'クエリに' LIMIT 1'句が含まれていますか? –
重複制約エラーで失敗していますか?もしそうなら、最も簡単なオプションはID_Articleを主キー(IntegerとAutoIncrement)にすることです。 – waterloomatt
私のコードは、他のテーブルとの結合があるので、UPDATEとINSERTのクエリを表示します。 LRUが古いと判明した場合、それはちょうどUPDATEになります。 – Nazly