mercredi 26 août 2015

"INSERT IF NOT EXISTS", ELSE UPDATE certain columns in MySQL

I'm using MySQL Workbench (6.3) and I'm trying to create a stored procedure with a specific "INSERT IF NOT EXSISTS" but I think I don't do it well. By the way, I did read this topic http://ift.tt/1MV5Pcl and tried both examples, it didn't work. Here is the statement :

CREATE DEFINER=`test`@`localhost` PROCEDURE `onPlayerJoin`(
    IN uuid CHAR(36),
    IN nickname CHAR(16),
    IN firstConnection TIMESTAMP,
    IN lastConnection TIMESTAMP
)

BEGIN
    INSERT IGNORE INTO `test`.`player` (`playerUuid`, `playerNickname`, `playerFirstConnection`, `playerLastConnection`)
        VALUES (uuid, nickname, firstConnection, lastConnection);
        UPDATE `test`.`player` SET
        `playerNickname` = nickname,
        `playerLastConnection` = lastConnection
        WHERE `playerUuid` = uuid;
END

IF the PK isn't found, INSERT it. ELSE, UPDATE certain columns. (that I can specified) However, it seems that it updates every column, which I would like to restrict to certain columns. Here is my procedure : http://ift.tt/1MV5MgO !

Optional question : is it injection-safe ?

Aucun commentaire:

Enregistrer un commentaire