Unieke data uit CSV file toevoegen aan MySQL db

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Raoul D

Raoul D

02/05/2019 17:07:31
Quote Anchor link
Goedemiddag,

Met een php-script voeg ik data toe aan een MySQL database.
Nu loop ik tegen het volgende aan, ik wil graag dat als een record al voor komt in de database dat deze niet wordt toegevoegd.

Kan iemand mij op weg helpen?

De Query die ik op dit moment gebruik:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
  LOAD DATA LOCAL INFILE "'.$file.'"
        IGNORE INTO TABLE '.$table.'
        FIELDS TERMINATED by \',\'
        LINES TERMINATED BY \'\n\'
 (col1, col2, col3, col4, col5, col6, col7, col8, col9, col10, col11, col12, col13, col14, col15, col16, col17)
 
PHP hulp

PHP hulp

23/04/2024 12:27:12
 
Thomas van den Heuvel

Thomas van den Heuvel

02/05/2019 18:42:53
Quote Anchor link
De database eerst leeggooien?

Je zult ons echt meer moeten vertellen over:
- de aard van het CSV-bestand
- de aard van de data
- hoe het CSV-bestand over tijd verandert, en de frequentie hiervan
- wat de mogelijke interacties van deze tabel met andere tabellen zijn
- etc.

Trouwens, een database(-tabel) is meer dan een spreadsheet. Kolomnamen als col1, col2 etc., kan dat niet anders/beter?

En het liefst wil je waarschijnlijk van deze afhankelijkheid van een CSV-bestand af. Zou het niet beter zijn om rechtstreeks via de database te werken (indien mogelijk) zodat je maar één informatiebron hebt, in plaats van meerdere die je de hele tijd moet synchroniseren?
 
Adoptive Solution

Adoptive Solution

02/05/2019 19:16:01
 
Aad B

Aad B

02/05/2019 20:21:23
Quote Anchor link
Maak een (eventueel tijdelijke) unique index op de attributen (kolommen) die bepalen dat het record dubbel en dus ongewenst is. Het toe te voegen record wordt dan geweigerd op basis van deze index.
Gewijzigd op 02/05/2019 20:48:08 door Aad B
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.