Sql 如果不存在,则插入h2表
我用的是H2。我想在表中插入一个不存在的值。我使用以下内容创建表:Sql 如果不存在,则插入h2表,sql,h2,insert-update,Sql,H2,Insert Update,我用的是H2。我想在表中插入一个不存在的值。我使用以下内容创建表: CREATE TABLE IF NOT EXISTS $types (type VARCHAR(15) NOT NULL UNIQUE); 我想做一些类似的事情 REPLACE INTO types (type) values ('type1'); 我找到了一个很明显对MySQL有效的替换,但我使用的是h2。但是,当我从h2控制台运行此命令时,出现了一个错误: Syntax error in SQL statement
CREATE TABLE IF NOT EXISTS $types
(type VARCHAR(15) NOT NULL UNIQUE);
我想做一些类似的事情
REPLACE INTO types (type) values ('type1');
我找到了一个很明显对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');
及
我不在乎新插入是否覆盖了旧数据,或者它只是不执行新插入。有没有一种方法可以通过h2数据库实现这一点?应该允许您实现您想要的。我不是H2方面的专家,但我已经在SQL Server中多次使用了MERGE
语句,从该网站的外观来看,它应该可以做到这一点
网址:
更新现有行,并插入不存在的行。如果未指定键列,则使用主键列查找该行
如果存在表,可以执行
删除操作,然后从头开始吗?感谢您提供语法链接,看起来Insert语句中没有类似MySQL的修饰符:。不过,我想我不会丢掉我的桌子。
INSERT INTO types (type) values ('expense') ON DUPLICATE KEY UPDATE type=type;