我正在使用H2。我想将一个值插入到表中(如果它不存在)。我使用以下命令创建表:
CREATE TABLE IF NOT EXISTS $types
(type VARCHAR(15) NOT NULL UNIQUE);
我想做一些类似的事情
REPLACE INTO types (type) values ('type1');
I found 一个例子 http://bogdan.org.ua/2007/10/18/mysql-insert-if-not-exists-syntax.html关于 Replace 显然适用于 MySQL,但我使用的是 h2。但是当我从 h2 控制台运行此命令时出现错误:
Syntax error in SQL statement "REPLACE[*] INTO TYPES (TYPE) VALUES ('expense') "; expected "ROLLBACK, REVOKE, RUNSCRIPT, RELEASE, {"; SQL statement:
REPLACE INTO types (type) values ('expense') [42001-170] 42001/42001
我也尝试过
INSERT IGNORE INTO types (type) values ('expense');
and
INSERT INTO types (type) values ('expense') ON DUPLICATE KEY UPDATE type=type;
我不关心新插入是否会覆盖旧数据,或者只是不执行新插入。有没有办法用 h2 数据库来做到这一点?
The 合并语句 http://www.h2database.com/html/grammar.html#merge应该可以让你实现你想要的。我不是 H2 方面的专家,但我用过MERGE
在 SQL Server 中多次声明,从该网站的外观来看,它应该可以解决问题。
来自网站:
更新现有行并插入不存在的行。如果未指定键列,则使用主键列来查找行。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)