Ik heb een tabel met 3 kolommen, namelijk id (auto_increment), postcode en datum.
Voorbeeld:
Zoals je ziet heeft postcode 1234AA twee entries, maar wel ieder met een ander datum. Dat mag, geen probleem.
Mijn script haalt elders data op en voegt deze toe aan de database. Ik heb geen controle over de geleverde data, als ik dus data aangeleverd krijg wat al voorkomt in mijn database en ik de data 1-op-1 toevoeg een mijn database, krijg ik dubbele entries (weliswaar met een ander id vanwege auto_increment). Dit wil ik voorkomen.
Wat ik kan doen is voordat ik een INSERT doe, een SELECT query uitvoeren, bij 0 resultaten toevoegen, bij 1 resultaat de INSERT query skippen. Dit lijkt mij niet efficient. Dit zou anders - op een efficientere manier - kunnen. Suggesties?
Voorbeeld:
code:
1
2
3
4
5
6
7
8
9
| mysql> SELECT * FROM tabel; +----+-------------------------+------------------+ | id | postcode | datum | +----+-------------------------+------------------+ | 1 | 1234AA | 20180502 | | 2 | 1234AA | 20180901 | | 3 | 2222CA | 20170403 | +----+-------------------------+------------------+ 3 rows in set (0.00 sec) |
Zoals je ziet heeft postcode 1234AA twee entries, maar wel ieder met een ander datum. Dat mag, geen probleem.
Mijn script haalt elders data op en voegt deze toe aan de database. Ik heb geen controle over de geleverde data, als ik dus data aangeleverd krijg wat al voorkomt in mijn database en ik de data 1-op-1 toevoeg een mijn database, krijg ik dubbele entries (weliswaar met een ander id vanwege auto_increment). Dit wil ik voorkomen.
Wat ik kan doen is voordat ik een INSERT doe, een SELECT query uitvoeren, bij 0 resultaten toevoegen, bij 1 resultaat de INSERT query skippen. Dit lijkt mij niet efficient. Dit zou anders - op een efficientere manier - kunnen. Suggesties?
EU DNS: 86.54.11.100