MySQL INSERT ... ON DUPLICATE KEY不更新表,没有错误或警告

模量乔

所以我有下表:

mysql> show create table user_api_skills \G
*************************** 1. row ***************************
       Table: user_api_skills
Create Table: CREATE TABLE `user_api_skills` (
  `characterID` int(11) NOT NULL,
  `typeID` int(11) NOT NULL,
  `level` enum('0','1','2','3','4','5') NOT NULL DEFAULT '0',
  `skillpoints` int(11) NOT NULL,
  `currentTime` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
  PRIMARY KEY (`characterID`,`typeID`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1
1 row in set (0.00 sec)

mysql>

然后在该表中尝试插入/更新的行:

mysql> SELECT * FROM `user_api_skills` WHERE `characterID` =93192782 AND `typeID` =3359;
+-------------+--------+-------+-------------+---------------------+
| characterID | typeID | level | skillpoints | currentTime         |
+-------------+--------+-------+-------------+---------------------+
|    93192782 |   3359 | 3     |      135765 | 2013-09-30 16:58:35 |
+-------------+--------+-------+-------------+---------------------+
1 row in set (0.00 sec)

我相信我的查询格式正确,执行时不会引发任何错误或警告:

mysql> INSERT INTO user_api_skills (characterID,typeID,level,skillpoints)
VALUES (93192782,3359,4,135765) ON DUPLICATE KEY UPDATE level=4,             
skillpoints=135765,currentTime=NOW();
Query OK, 2 rows affected (0.22 sec)

我得到2行更新(正如我希望在dup更新中插入)

mysql> SELECT * FROM `user_api_skills` WHERE `characterID` =93192782 AND `typeID` =3359;
+-------------+--------+-------+-------------+---------------------+
| characterID | typeID | level | skillpoints | currentTime         |
+-------------+--------+-------+-------------+---------------------+
|    93192782 |   3359 | 3     |      135765 | 2013-09-30 16:59:13 |
+-------------+--------+-------+-------------+---------------------+
1 row in set (0.00 sec)

mysql> 

但该行本身仅更改一个值(currentTime)。谁能解释为什么其他两个字段没有更新?

模量乔

抱歉,我自己解决了这个问题。级别字段是ENUM,查询将新值指定为数字。将查询更新为以下内容可获得预期结果。

mysql> INSERT INTO user_api_skills (characterID,typeID,level,skillpoints) VALUES 
(93192782,3359,4,135765) ON DUPLICATE KEY UPDATE level='4', skillpoints=135765, 
currentTime=NOW();

通过为更新提供一个整数,它会将更新更新为枚举的基于一个数字的选择,因此在这种情况下,第四个选择为“ 3”。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

INSERT INTO... ON DUPLICATE KEY UPDATE 不更新 PHP 和 mySQL 中的重复值

来自分类Dev

PHP MySQL INSERT ON DUPLICATE KEY UPDATE 不起作用

来自分类Dev

mysql 不会替换 INSERT ON DUPLICATE 中的所有位置参数

来自分类Dev

INSERT SELECT ON DUPLICATE不更新

来自分类Dev

MySQL-如何在批处理INSERT ON DUPLICATE KEY UPDATE查询中计算INSERT和UPDATES?

来自分类Dev

MySQL-如何在批处理INSERT ON DUPLICATE KEY UPDATE查询中计算INSERT和UPDATES?

来自分类Dev

Java上的MySQL“ INSERT ... ON DUPLICATE KEY UPDATE”:如何区分插入/更新/ NoChange状态

来自分类Dev

MySQL具有多个唯一键的“ Insert ... On Duplicate Key”

来自分类Dev

调整 INSERT ON DUPLICATE KEY UPDATE

来自分类Dev

MySQL-可以“ INSERT INTO-ON DUPLICATE KEY UPDATE”导致数据丢失

来自分类Dev

指定单个列时,MySQL批量INSERT .. ON DUPLICATE KEY UPDATE

来自分类Dev

MySQL-可以“ INSERT INTO-ON DUPLICATE KEY UPDATE”导致数据丢失

来自分类Dev

为什么在INSERT ... ON DUPLICATE KEY UPDATE上为MySQL中的键“ PRIMARY”给出重复的条目“ x”?

来自分类Dev

MySql上的INSERT〜SELECT〜ON DUPLICATE KEY查询出了什么问题?

来自分类Dev

INSERT ... ON DUPLICATE KEY语句的任何错误

来自分类Dev

没有UP DUPLICATE KEY的MySQL UPSERT

来自分类Dev

可以使用ON DUPLICATE SELECT进行MySQL INSERT吗?

来自分类Dev

INSERT ... ON DUPLICATE KEY UPDATE不起作用

来自分类Dev

尽管 PHP、MYSQL 中没有错误,但 INSERT INTO 不会插入任何数据

来自分类Dev

如果不能忽略由MySQL INSERT ... ON DUPLICATE KEY UPDATE引起的auto_increment差距怎么办?

来自分类Dev

Perl MySQL INSERT错误

来自分类Dev

Mysql INSERT INTO错误#1064

来自分类Dev

PHP和MySQL INSERT INTO不起作用-DB中没有错误并且没有新行

来自分类Dev

如何使用INSERT ... ON DUPLICATE?

来自分类Dev

在PDO中使用INSERT INTO ON DUPLICATE KEY绑定值

来自分类Dev

将UPDATE转换为INSERT INTO ON DUPLICATE KEY UPDATE语句

来自分类Dev

INSERT INTO ... ON DUPLICATE KEY UPDATE似乎不起作用

来自分类Dev

使用 INSERT INTO table ON DUPLICATE KEY 时出错,使用 for 循环数组

来自分类Dev

使用INSERT ON DUPLICATE UPDATE查询2个表

Related 相关文章

  1. 1

    INSERT INTO... ON DUPLICATE KEY UPDATE 不更新 PHP 和 mySQL 中的重复值

  2. 2

    PHP MySQL INSERT ON DUPLICATE KEY UPDATE 不起作用

  3. 3

    mysql 不会替换 INSERT ON DUPLICATE 中的所有位置参数

  4. 4

    INSERT SELECT ON DUPLICATE不更新

  5. 5

    MySQL-如何在批处理INSERT ON DUPLICATE KEY UPDATE查询中计算INSERT和UPDATES?

  6. 6

    MySQL-如何在批处理INSERT ON DUPLICATE KEY UPDATE查询中计算INSERT和UPDATES?

  7. 7

    Java上的MySQL“ INSERT ... ON DUPLICATE KEY UPDATE”:如何区分插入/更新/ NoChange状态

  8. 8

    MySQL具有多个唯一键的“ Insert ... On Duplicate Key”

  9. 9

    调整 INSERT ON DUPLICATE KEY UPDATE

  10. 10

    MySQL-可以“ INSERT INTO-ON DUPLICATE KEY UPDATE”导致数据丢失

  11. 11

    指定单个列时,MySQL批量INSERT .. ON DUPLICATE KEY UPDATE

  12. 12

    MySQL-可以“ INSERT INTO-ON DUPLICATE KEY UPDATE”导致数据丢失

  13. 13

    为什么在INSERT ... ON DUPLICATE KEY UPDATE上为MySQL中的键“ PRIMARY”给出重复的条目“ x”?

  14. 14

    MySql上的INSERT〜SELECT〜ON DUPLICATE KEY查询出了什么问题?

  15. 15

    INSERT ... ON DUPLICATE KEY语句的任何错误

  16. 16

    没有UP DUPLICATE KEY的MySQL UPSERT

  17. 17

    可以使用ON DUPLICATE SELECT进行MySQL INSERT吗?

  18. 18

    INSERT ... ON DUPLICATE KEY UPDATE不起作用

  19. 19

    尽管 PHP、MYSQL 中没有错误,但 INSERT INTO 不会插入任何数据

  20. 20

    如果不能忽略由MySQL INSERT ... ON DUPLICATE KEY UPDATE引起的auto_increment差距怎么办?

  21. 21

    Perl MySQL INSERT错误

  22. 22

    Mysql INSERT INTO错误#1064

  23. 23

    PHP和MySQL INSERT INTO不起作用-DB中没有错误并且没有新行

  24. 24

    如何使用INSERT ... ON DUPLICATE?

  25. 25

    在PDO中使用INSERT INTO ON DUPLICATE KEY绑定值

  26. 26

    将UPDATE转换为INSERT INTO ON DUPLICATE KEY UPDATE语句

  27. 27

    INSERT INTO ... ON DUPLICATE KEY UPDATE似乎不起作用

  28. 28

    使用 INSERT INTO table ON DUPLICATE KEY 时出错,使用 for 循环数组

  29. 29

    使用INSERT ON DUPLICATE UPDATE查询2个表

热门标签

归档