SQL INSERT INTO TABLE SELECT指定插入字段的新用法

来源:互联网 发布:java jre 32位下载 编辑:程序博客网 时间:2024/06/01 10:07

首先声明开发用的数据库是Oracle ,其他数据库未做测试

今天开发中遇到个需求,就是把一张配置表TABLE1的某些字段查询出来插入到另一张表TABLE2中去,但是由于TABLE2中需要插入的字段实在是太多了,但我能从TABLE1中查询出来的字段很有限,其余的字段怎么办呢? 不插入就会报插入的值不够的SQL ERROR

但是以前也只写过INSERT INTO TABLE2(字段1,字段2) values(值1,值2)的写法

对于INSERT INTO TABLE2 SELECT * FROM TABLE1的写法,当两张表不统一,且字段名不对应的情况,该怎么办呢?

于是就尝试了一下:INSERT INTO TABLE2(字段1,字段2) SELECT * FROM TABLE1的写法。事实证明这样的写法是可以通过的。

例子:

INSERT INTO TABLE2(UUID,UNITID, TARGET_TYPE)   SELECT '74fdac29-118a-492b-885b-58a3e12b70f4' AS UUID,conf.UNITID AS UNITID,'P' AS TARGET_TYPE FROM TABLE1 conf  WHERE DEVID='w999' AND UNITID='1';   COMMIT;

此处只插入3个字段让SQL简短一些,方便理解。

0 0