gpt4 book ai didi

mysql - "INSERT IF NOT EXISTS",否则更新 MySQL 中的某些列

转载 作者:行者123 更新时间:2023-11-29 22:05:03 25 4
gpt4 key购买 nike

我正在使用 MySQL Workbench (6.3),我正在尝试创建一个具有特定“INSERT IF NOT EXSISTS”的存储过程,但我认为我做得不好。顺便说一句,我确实读过这个主题http://bogdan.org.ua/2007/10/18/mysql-insert-if-not-exists-syntax.html并尝试了这两个例子,但都不起作用。以下是声明:

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

如果未找到 PK,请插入它。否则,更新某些列。 (我可以指定)但是,它似乎更新了每一列,我想将其限制为某些列。这是我的程序:http://pastebin.com/NfcdU9Rb !

可选问题:注入(inject)安全吗?

最佳答案

使用 INSERT ... ON DUPLICATE KEY UPDATE 语法

INSERT INTO table (a,b,c) VALUES (1,2,3)
ON DUPLICATE KEY UPDATE c=c+1;

详情请引用链接: http://dev.mysql.com/doc/refman/5.6/en/insert-on-duplicate.html

关于mysql - "INSERT IF NOT EXISTS",否则更新 MySQL 中的某些列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32234888/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com