插入多个用户

时间:2016-05-23 15:57:21

标签: oracle

是否可以将插入与选择组合? e.g。

插入

INSERT INTO user_history VALUES (SEQ_USER_HISTORY_ID.nextval, '65567','AccountStatus', 'Y', 'N', sysdate, 1, 'Update');

选择

SELECT USER_ID FROM USER WHERE COUNTRY = 'MEX'

select语句将返回许多用户ID,我需要为每个用户ID添加一个插入语句。

由于

1 个答案:

答案 0 :(得分:1)

是。要内联使用,必须完成选择,并且只能返回一行。

例如

INSERT INTO user_history 
VALUES (select SEQ_USER_HISTORY_ID.nextval from dual, 
        '65567',
        'AccountStatus',
        'Y',
        'N',
        sysdate,
        1,
        'Update');

要使用另一个SQL,如SELECT USER_ID FROM USER WHERE COUNTRY = 'MEX'并插入多行(SQL中每行一行),您需要以这种方式使用它:

INSERT INTO user_history 
    (select SEQ_USER_HISTORY_ID.nextval,  
            USER_ID , 
            'accountStatus',
            'Y',
            'N',
            sysdate, 
            1,
            'update' 
     FROM USER 
     WHERE COUNTRY = 'MEX');

参考(参见示例部分):https://docs.oracle.com/cd/B14117_01/appdev.101/b10807/13_elems025.htm#sthref1704