mysql语法有什么问题?无法插入

92dk7w1h  于 2021-07-29  发布在  Java
关注(0)|答案(1)|浏览(317)

在尝试插入数据库时,我得到mysqlsyntaxerrorexception,这意味着我的sql是错误的。我好像不知道它怎么了

INSERT INTO players (uuid, username) VALUES (?, ?) ON DUPLICATE KEY UPDATE uuid=VALUES(e4b3cfb9-0106-4bde-897d-d47465bcf594), username=VALUES(Realmm)
4zcjmb1e

4zcjmb1e1#

如果这是您真正想要的,那么语法更像这样:

INSERT INTO players (uuid, username)
    VALUES (?, ?)
    ON DUPLICATE KEY UPDATE uuid ='e4b3cfb9-0106-4bde-897d-d47465bcf594',
                            username = VALUES(Realmm);

即使这样也可能导致错误。 Realmm 似乎不是更新的一部分。如果你愿意的话 'Realmm' ,则也需要字符串:

INSERT INTO players (uuid, username)
    VALUES (?, ?)
    ON DUPLICATE KEY UPDATE uuid ='e4b3cfb9-0106-4bde-897d-d47465bcf594',
                            username = 'Realmm';

避免错误的典型方法是:

INSERT INTO players (uuid, username)
    VALUES (?, ?)
    ON DUPLICATE KEY UPDATE uuid = VALUES(uuid);

有时会设置其他列,例如计数器或更新日期。但是作为唯一索引一部分的键通常不会设置为常量。

相关问题