简体   繁体   English

H2:多行插入语句出错

[英]H2: Error with a multi-row insert statement

I'm using an in-memory H2 database with an initialisation SQL script.我正在使用带有初始化 SQL 脚本的内存 H2 数据库。 The following table is created:创建了下表:

CREATE TABLE GINA_T_WAM_GUESTDOMAIN (
    WFD_C_NAME VARCHAR(12) NOT NULL,
    WFD_C_BASEURI VARCHAR(128) NOT NULL,

    PRIMARY KEY (WFD_C_NAME, WFD_C_BASEURI),
    FOREIGN KEY (WFD_C_NAME) REFERENCES GINA_T_WAM_GUEST(WFG_C_NAME)
);

Now I can insert some rows in that table like this:现在我可以像这样在该表中插入一些行:

INSERT INTO GINA_T_WAM_GUESTDOMAIN(WFD_C_NAME,WFD_C_BASEURI)
    VALUES('DEVINT', 'https://dev.etat-ge.ch');

INSERT INTO GINA_T_WAM_GUESTDOMAIN(WFD_C_NAME,WFD_C_BASEURI)
    VALUES('DEVINT', 'https://devtech.etat-ge.ch');

But when I try to insert both rows in a single statement:但是当我尝试在单个语句中插入两行时:

INSERT INTO GINA_T_WAM_GUESTDOMAIN(WFD_C_NAME,WFD_C_BASEURI)
    VALUES('DEVINT', 'https://dev.etat-ge.ch'),
    VALUES('DEVINT', 'https://devtech.etat-ge.ch');

I get the following error message:我收到以下错误消息:

Column count does not match列数不匹配

Does anyone knows about this issue?有谁知道这个问题? is it at all possible to insert several lines in one statement?是否可以在一个语句中插入几行?

That's how you can insert multiple rows at the same time in a single SQL statement:这就是您可以在单个 SQL 语句中同时插入多行的方式:

VALUES('DEVINT', 'https://dev.etat-ge.ch'),
      ('DEVINT', 'https://devtech.etat-ge.ch');

It's called row value constructor and is a standard since SQL-92.它被称为行值构造函数,是自 SQL-92 以来的标准。


Source: http://www.andrew.cmu.edu/user/shadow/sql/sql1992.txt (Chapter 7.1)资料来源: http://www.andrew.cmu.edu/user/shadow/sql/sql1992.txt (第 7.1 章)

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM