MySQL har et meget nice funktion man kan benytte når det er man er ved at INSERT nået til databasen, denne funktion hedder ( ON DUPLICATE ) og kan benyttes hvis ens INSERT data allerade findes til et PRIMAY KEY og derfor skal updaters isted for, først skal du have en test table som ser sådan her ud.
CREATE TABLE log (
name CHAR(30) NOT NULL,
location CHAR(30) NOT NULL,
counter INT UNSIGNED NOT NULL,
PRIMARY KEY (name,location)
);
Der næst skal du prøve at lave en INSERT statemen med en ON DUPLICATE inden i, denne kan se så leds ud.
INSERT INTO
log ( name, location, counter )
VALUES ( ‘Tantor’, ‘Waterhole’, 1)
ON DUPLICATE KEY
UPDATE
counter=counter+1;
Når det er gjort prøv så at køre din INSERT statemen 2 gange, første gang vil den retuere nået ala 1 row in set ( 0.00 ) sec, anden gang du udføre den vil det se nået ala sådan her ud ( Query Ok, 2 rows affected ( 0.00 ) sec )
Grunden til at dden retuere 1 og 2 i rows er at hvis den er helt ny og bliver oprettet viledn reutere 1 og hvis den findes og bliver updatert vil den retuere 2.