跳转到主内容
思享编程网:思考分享,玩转编程世界!

怎么用insert into ... select from?小心这些常见错误!

大家好,我是陆砚码。今天我们来聊聊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)和我交流。我们下期再见!

相关文章