+ -
当前位置:首页 → 问答吧 → 这种语句有什么问题么?

这种语句有什么问题么?

时间:2011-11-24

来源:互联网

insert into test values((select max(t_id)+1 from test),null,2,'s')

作者: csndcsnd01232   发布时间: 2011-11-24

insert into test values
(select max(t_id)+1, null as aaa, 2 as bbb, 's' as ccc 
from test group by aaa, bbb, ccc)

作者: yixilan   发布时间: 2011-11-24

insert into test
select (select max(t_id)+1 from test),null,2,'s' from dual

作者: BOBO12082119   发布时间: 2011-11-24

引用 2 楼 bobo12082119 的回复:
insert into test
select (select max(t_id)+1 from test),null,2,'s' from dual


+1

作者: cosio   发布时间: 2011-11-24

我的SQL没有报错,我只是想有什么坏处.............

作者: csndcsnd01232   发布时间: 2011-11-24

SQL code

添加数据有几种方法,不同的方式有不同的用途和好处还有注意点:
1.insert into table_names(col_1,col_2,col_3) values(values_1,values_2,values_3)
  如果只是添加表中的部分列的数据,那么一定要指定列名
2.insert into table_names_a(col_1,col_2,col_3)
  select col_1,col_2,col_3
  from table_names_b
  where conditions
  此情况是从现有的表中将数据通过一定的条件筛选出来
3.创建表的时候添加数据,也叫表复制
  create table temp_emp
  as select * from scott.emp
  表数据的复制,有备份之用

作者: BOBO12082119   发布时间: 2011-11-24

你这个写法没问题呀,是不是id是主键?还是第二个字段不能为空?
你出的啥错呀?

作者: chybin500   发布时间: 2011-11-24

引用 4 楼 csndcsnd01232 的回复:

我的SQL没有报错,我只是想有什么坏处.............

不列出列名,则以后表结构修改了,你这SQL就直接报错了,而且也不利于维护

作者: zengjc   发布时间: 2011-11-24