SQL在1个查询中插入具有不同ID的相同值

时间:2015-12-30 08:40:50

标签: sql oracle sql-insert

除了主键(public class DefaultRepositoryRestConfigurerAdapter extends RepositoryRestConfigurerAdapter { @Autowired(required = false) private Jackson2ObjectMapperBuilder objectMapperBuilder; @Override public void configureJacksonObjectMapper(ObjectMapper objectMapper) { if (this.objectMapperBuilder != null) { this.objectMapperBuilder.configure(objectMapper); } } } )之外,是否可以在具有相同数据的表中插入多个值?

例如:

ID

是否可以插入50个不同ID的红苹果?

INSERT INTO apples (name, color, quantity) 
VALUES of(txtName, txtColor, txtQuantity)

这样可能吗?

5 个答案:

答案 0 :(得分:2)

您可以使用SEQUENCE

`CREATE SEQUENCE seq_name
  START WITH 1
  INCREMENT BY 1`

然后在INSERT语句中,使用此

`INSERT INTO apples (id, name, color, quantity)
  VALUES(seq_name.nextval, 'apple', 'red', 1 );`

答案 1 :(得分:1)

您可以使用INSERT ALL或像这样使用UNION ALL。

INSERT ALL
   INTO apples  (name, color, quantity) VALUES ('apple', 'red', '1')
   INTO apples  (name, color, quantity) VALUES ('apple', 'red', '1')
   INTO apples  (name, color, quantity) VALUES ('apple', 'red', '1')
SELECT 1 FROM DUAL;

insert into apples (name, color, quantity)
select 'apple', 'red', '1' from dual
union all 
select 'apple', 'red', '1' from dual

在Oracle 12c之前,您可以在ID列上创建SEQUENCE。此外,如果您使用的是Oracle 12c,则可以将ID列设置为标识

CREATE TABLE apples(ID NUMBER GENERATED BY DEFAULT ON NULL AS IDENTITY);

此外,如果序列不重要且您只需要一个不同/唯一的ID,那么您可以使用

CREATE TABLE apples( ID RAW(16) DEFAULT SYS_GUID() )

答案 2 :(得分:0)

CREATE TABLE APPLES(PK_ID NUMBER PRIMARY KEY,NAME VARCHAR2(100), COLOR VARCHAR2(100), QUANTITY VARCHAR(200));
INSERT INTO APPLES (PK_ID, NAME, COLOR, QUANTITY)  VALUES(1, 'apple', 'red', 1 );
INSERT INTO APPLES (PK_ID, NAME, COLOR, QUANTITY)  VALUES(2, 'apple', 'red', 1 );

答案 3 :(得分:0)

您可以使用 CONNECT BY 子句在单个 SQL 语句中执行此操作,也称为行生成器方法

例如,要生成10行:

SQL> SELECT LEVEL  ID,
  2        'apple' NAME ,
  3        'red'   color,
  4        1       quantity
  5  FROM dual
  6    CONNECT BY LEVEL <=10;

        ID NAME  COLOR    QUANTITY
---------- ----- ------ ----------
         1 apple red             1
         2 apple red             1
         3 apple red             1
         4 apple red             1
         5 apple red             1
         6 apple red             1
         7 apple red             1
         8 apple red             1
         9 apple red             1
        10 apple red             1

10 rows selected.

SQL>

您可以将上述SELECT用作INSERT INTO SELECT声明。

答案 4 :(得分:-1)

创建包含4列的表

然后添加具有不同主键的相同行集

INSERT INTO apples (ID,name, color, quantity) VALUES (UniqueID,txtName, txtColor, txtQuantity);