我正在做一个Java程序,我正在从一些文件读取输入,如果它包含我列表中的任何字符串,我必须用名称及其计数更新表。 首先,我创建了一个表,如下所示
create table mobile(name varchar2(20),count int,primary key(name));
例如,如果我读取“Sony unviels new phone”这样的字符串,则必须使用名称将表更新为sony count为1。
我怀疑最初它是一张空桌子。我可以像我说的那样更新它。
提前致谢....
答案 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。