SQL仅替换为行中的前两列

时间:2015-01-24 09:19:43

标签: java mysql sql

我现在拥有的是:

PreparedStatement ps = getSQLConnection().prepareStatement(
    "REPLACE INTO " + table + " (uuid,name) VALUES(?,?)"
    );

ps.setString(1, uuid.toString());
ps.setString(2, name.toLowerCase());
ps.executeUpdate();

但是,它不是仅设置索引1和2,而是清除其他列值。如何插入仅包含前2个索引的行,并保持其他值不变?

使用以下语句创建表:

"CREATE TABLE IF NOT EXISTS data (" +
"`uuid` varchar(36) NOT NULL," +
"`name` varchar," + 
"`owner` varchar," + 
"`tags` varchar," + 
"PRIMARY KEY (`uuid`));"

1 个答案:

答案 0 :(得分:2)

来自the documentation

  

REPLACE是SQL标准的MySQL扩展。它可以插入,删除和插入。对于标准SQL的另一个MySQL扩展 - 插入或更新 - 请参见第13.2.5.3节“INSERT ... ON DUPLICATE KEY UPDATE语法”。