更新SQL表

时间:2014-05-29 08:33:00

标签: java sql oracle

我正在做一个Java程序,我正在从一些文件读取输入,如果它包含我列表中的任何字符串,我必须用名称及其计数更新表。 首先,我创建了一个表,如下所示

 create table mobile(name varchar2(20),count int,primary key(name));

例如,如果我读取“Sony unviels new phone”这样的字符串,则必须使用名称将表更新为sony count为1。

我怀疑最初它是一张空桌子。我可以像我说的那样更新它。

提前致谢....

3 个答案:

答案 0 :(得分:1)

创建第一个表

CREATE TABLE mobile
(
   t_name    VARCHAR (20),
   t_count   NUMBER,
   PRIMARY KEY (t_name)
);

并插入声明

INSERT INTO mobile
     VALUES ('Sony', 1);

插入和更新的单个语句

MERGE INTO mobile t
     USING (SELECT *
              FROM mobile
             WHERE LOWER (t_name) = 'sony') s
        ON (t.t_name = s.t_name)
WHEN MATCHED
THEN
   UPDATE SET t.t_count = t_count+1
WHEN NOT MATCHED
THEN
   INSERT     (t_name, t_count)
       VALUES ('sony', 1);

答案 1 :(得分:0)

您可以使用给定的单词列表预填充表格,例如

CREATE TABLE mobile(
  name varchar2(20),
  count_column int,
  primary key(name)
);

INSERT INTO mobile (name, count_column) VALUES 
('Sony', 0);

或者您正在为您的Java代码添加一些魔法,决定是进行UPDATE还是INSERT。

简单就像理论一样

 UPDATE mobile SET count_column to count_column+1 where name = 'Sony';

如果没有给出任何条目,这将失败。

答案 2 :(得分:0)

你必须执行UPSERT之类的查询,因为oracle没有它,你必须做一个解决方法来解决这个问题。请查看this