使用java更新具有单列的mysql数据
Posted
技术标签:
【中文标题】使用java更新具有单列的mysql数据【英文标题】:Updating mysql data with single column using java 【发布时间】:2014-10-17 07:53:39 【问题描述】:我在 mysql 中有一个表,只有一列(没有主键),说列是这样的->
Column Name
----------------
Data1
Data2
Data4
我想要做的是使用 java 连接将“Data4”更改为“Data3”。 但是要更改单元格值,我知道命令->
Alter Table <tablename> set <columnname>="something" where <someothercolumnname>="somethingelse";
但这需要表中至少 2 列,当只有一列时我会收到语法错误。那么任何人都可以帮助我正确的命令吗?
【问题讨论】:
How to rename a table column in MySQL 的可能重复项Alter
与Update
不同,如果要更新表数据,则使用alter 更新表模式,然后使用更新查询update tablename set columnname ='value' where columnname='somevalue'
@alfasin 我不这么认为;如果我正确阅读了这个问题,“列名”是列,“Data1”、“Data2”、“Data4”是该列下表中的数据(请注意,OP 说只有一列,而不是三列)
那样的话就更简单了……
【参考方案1】:
使用更新查询而不是更改查询。 alter 将帮助您更新表描述。
update <your table name> set columnname ='Data3' where columnname='Data4';
【讨论】:
好的,谢谢,它成功了(不知道我是怎么错过这个命令的,需要更多地学习mysql!:D)。【参考方案2】:您可以将表格保持原样,只需将查询编写为:
select data1, data2, data4 as data3
from tablex;
或者,如果你想在数据库中重命名它:
ALTER TABLE <tablename> CHANGE data4 data3 varchar(255);
执行此操作时,您需要有一个数据类型。将数据类型更改为适合列的类型。
【讨论】:
正如我对 alfasin 所说,我很确定 OP 实际上只是试图更新一个单元格,而不是重命名一个列。【参考方案3】:更改查询是实际答案。 但是有一个愚蠢的替代方案, 先删除“Data4”,再插入“Data3”
【讨论】:
以上是关于使用java更新具有单列的mysql数据的主要内容,如果未能解决你的问题,请参考以下文章
sql mysql批量插入,具有重复键更新(upsert),并具有条件数据更新