赞
踩
首先声明开发用的数据库是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简短一些,方便理解。
https://www.jianshu.com/p/88c58a09f95a
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。