SQL求助,我要想在一张表新增多行,只有第一列值不同,后面的列值相同,该怎么插入?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了SQL求助,我要想在一张表新增多行,只有第一列值不同,后面的列值相同,该怎么插入?相关的知识,希望对你有一定的参考价值。
比如这样,
第一步,你先找个有足够多记录的表,比如我这里有个表temp,里面有很多记录。第二步,insert into 要插入记录的表 select rownum,1,0,0,9 from temp where rownum <= 要生成的行数。
执行以上两步即可。
针对于Oracle数据库,其他类型的数据库原理一样。另外,表temp中行数要比你要生成的行数多。 参考技术A insert table1 (列1,列2)
select max(列1)+1, max(列2) from table1 参考技术B insert into 表
select 列1+1,列2,列3,列4... from 表 where 列1 in
(select max(列1) from 表 )追问
我22.23.24.25 写在哪里呢?
追答插入第一个条以后就
不用写,插入一次自增一次
oracle 表列值唯一 怎么实现
你这个情况,可以采用
序列号
+
触发器
的方式来处理。
SQL>
CREATE
SEQUENCE
test_sequence2
2
increment
by
1
--
每次递增1
3
start
with
1
--
从1开始
4
nomaxvalue
--
没有最大值
5
minvalue
1
--
最小值=1
6
NOCYCLE;
--
不循环
Sequence
created.
SQL>
CREATE
TABLE
test_create_tab2
(
2
id
INT,
3
val
VARCHAR(10),
4
PRIMARY
KEY
(id)
5
);
Table
created.
SQL>
CREATE
OR
REPLACE
TRIGGER
BeforeTestCreate2Insert
2
BEFORE
INSERT
ON
test_create_tab2
3
FOR
EACH
ROW
4
BEGIN
5
SELECT
test_sequence2.nextval
INTO
:new.id
FROM
dual;
6
END;
7
/
Trigger
created.
SQL>
INSERT
INTO
test_create_tab2(val)
VALUES
('NO
id');
1
row
created.
SQL>
INSERT
INTO
test_create_tab2(id,
val)
VALUES
(1,
'id
no
use');
1
row
created.
SQL>
SELECT
*
FROM
test_create_tab2;
ID
VAL
----------
--------------------
1
NO
id
2
id
no
use 参考技术A select
count(1)
from
xxx
where
yyy
is
null;
首先
yyyy
是nullable这样做才有意义,
如果是nullable
那么最快的是
建一个索引
create
index
ind1
on
xxx(yyy,1);
如下面的例子:
sql>
set
timing
on;
sql>
sql>
select
count(1)
from
tvol
where
owner
is
null;
count(1)
----------
0
elapsed:
00:00:02.89
sql>
sql>
create
index
ind1
on
tvol(owner,1);
index
created.
elapsed:
00:00:20.73
sql>
select
count(1)
from
tvol
where
owner
is
null;
count(1)
----------
0
elapsed:
00:00:00.00
以上是关于SQL求助,我要想在一张表新增多行,只有第一列值不同,后面的列值相同,该怎么插入?的主要内容,如果未能解决你的问题,请参考以下文章