大家好,我是陆砚码。今天我们来聊聊SQL中经常用到的一个语句:insert into ... select from。这个语句虽然强大,但如果不小心,很容易踩坑哦!
首先,我们来看看正确的用法:
最常用的insert语句插入数据,格式是这样的:
insert into table (field1,field2) values(value1,value2);
如果你想从另一个表中获取数据插入到当前表中,可以这样写:
insert into tableA (field1,field2) select field1,field2 from tableB;
注意,这里一定要用括号括起来你要插入的字段名。
接下来,我们来说说容易犯的错误:
错误写法是这样的:
insert into tableA (field1,field2) values(select field1,field2 from tableB);
这种写法在存储过程中会一直报错,错误信息是:
Error: PL/SQL: ORA-00936: 缺失表达式
Error: PL/SQL: SQL Statement ignored
如果你想要复制两个结构完全一样的表的数据,可以这样写:
insert into tableA select * from tableB;
但是,最常见的一个错误是:
ORA-00913: 值过多
无论是普通的写法还是select的写法,都要确保列和值的个数一一对应。
小结与拓展
好了,今天我们就聊到这里。记住,学习编程最重要的是理解思路。如果你在编程过程中遇到任何问题,欢迎来「思享编程网」(www.sxgpb.com)和我交流。我们下期再见!
