英文:
JDBC. Replace in all rows value of the column
问题
Java 11. PostgreSQL.
在数据库中有以下表格:
TABLE public.account (
id bigserial NOT NULL,
account_id varchar(100) NOT NULL,
display_name varchar(100) NOT NULL,
is_deleted bool NULL DEFAULT false,
);
这个表格中大约有1000行数据。在代码中,我有一个静态方法,可以返回随机字符串 - Helper.getRandomName()
如何使用JDBC,在这个表格(public.account)的所有行中,将"display_name" 的值替换为 Helper.getRandomName() 的值?
英文:
Java 11. PostgreSQL.
Having following table in db:
TABLE public.account (
id bigserial NOT NULL,
account_id varchar(100) NOT NULL,
display_name varchar(100) NOT NULL,
is_deleted bool NULL DEFAULT false,
);
There are about 1000 rows in this table. In the code I have a static method, which return random string - Helper.getRandomName()
How, using JDBC, in this table (public.account) for all rows replace "display_name" value with value of Helper.getRandomName()?
答案1
得分: 1
这是一个SQL问题。您需要运行一个更新查询:
UPDATE public.account SET display_name = ?
并将新名称作为参数提供。缺少WHERE
子句意味着所有行都将受到影响。
如果您想要逐个更新每一行,那就会更加复杂。您需要执行一个选择语句以找到所有的ID,然后可以使用JDBC准备一批更新操作,为每个ID添加一个WHERE子句。
JDBC只是一个围绕纯SQL执行的轻量级Java包装器。
英文:
This is a SQL question. You need to run an update query:
UPDATE public.account set display_name = ?
And provide the new name as the parameter. The absence of a WHERE
clause means that all rows will be affected.
If you want to do this for each row individually, then it's harder. You'll want to do a select statement to find all the IDs, and then you can prepare a batch of updates using JDBC, adding a where clause for each ID.
JDBC is just a thin Java wrapper around plain SQL execution.
通过集体智慧和协作来改善编程学习和解决问题的方式。致力于成为全球开发者共同参与的知识库,让每个人都能够通过互相帮助和分享经验来进步。
评论