gpt4 book ai didi

mysql - 是否可以在具有多个字段的表中使用 ON DUPLICATE KEY UPDATE 仅更新单个字段?

转载 作者:太空宇宙 更新时间:2023-11-03 11:49:48 24 4
gpt4 key购买 nike

是否可以在具有多个字段的表中使用 ON DUPLICATE KEY UPDATE 仅更新单个字段?

如果我有一个包含三个字段的表; key, cats, dogs 其中 key 是主键是否可以更新重复键上的记录,只更改一个字段(对于我的示例 cats)而不更改另一个非键中的值字段()。这是不知道插入时数据库外部的 dogs 的值是什么(即我有一个变量保存 cats 值,但没有一个保存 dogs 值)

INSERT INTO `myTable` (`key`,`cats`) VALUES('someKey1','Manx') ON DUPLICATE KEY UPDATE `cats` = 'Manx';

当我运行这样的程序时,表 dogs 中已经存在的键被设置为 NULL,即使它之前有一个值也是如此。

最佳答案

Gordon 是对的,它并不像我描述的那样工作。如果你看到这个,那不是由 ON DUPLICATE UPDATE 语句引起的,而是其他原因。证明如下:

CREATE TABLE IF NOT EXISTS `myTable` (
`key` varchar(20) NOT NULL default '',
`cats` varchar(20) default NULL,
`dogs` varchar(20) default NULL,
PRIMARY KEY (`key`)
)

运行

INSERT INTO `myTable` (`key`, `cats`, `dogs`) VALUES
('someKey1', NULL, 'jack-russell');

然后运行

INSERT INTO `myTable` (`key`,`cats`) VALUES
('someKey1','Manx') ON DUPLICATE KEY UPDATE `cats` = 'manx';

然后查表

关于mysql - 是否可以在具有多个字段的表中使用 ON DUPLICATE KEY UPDATE 仅更新单个字段?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36182675/

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