insert into (select empno,ename,sal,deptno from emp where deptno=30) values(1112,'abc',2000,30)各位前辈这种写法是什么意思啊为什么这样写啊,,,

解决方案 »

  1.   

    insert into (select empno,ename,sal,deptno from emp where deptno=30) values(1112,'abc',2000,30)等价于insert into emp(empno,ename,sal,deptno) values(1112,'abc',2000,30);至于为什么要这样写,可能跟你依据DEPTNO=30这个条件有关,但是个人不赞同这样写,因为你插入的栏位内层查询就知道是哪些了,为什么不直接用呢?
    而且插入的DEPTNO值“30”给你内层查询条件的30没有关系的
    也就是说,可以这样:
    insert into (select empno,ename,sal,deptno from emp where deptno=30) values(1112,'abc',2000,40)所以,此写法没什么为什么不为什么的此人拙见!
      

  2.   


    就跟正常的insert into emp(empno,ename,sal,deptno ) values(1112,'abc',2000,30)一样,没有什么本质的区别!
      

  3.   

    insert into (select empno,ename,sal,deptno from emp where deptno=30) values(1112,'abc',2000,30)等价于insert into emp(empno,ename,sal,deptno) values(1112,'abc',2000,30);
      

  4.   

    inline视图的DML操作,可以搜索下