我必須從表中取出一條記錄,增加一列并再次將記錄插入同一個表中。
這是我的表,例如:
TEST(id, name, city)
1, john, NY
我想選擇這條記錄并將其插入同一個表中 1250 次,預期輸出為:
id, name, city
2, john, NY
3, john, NY
4, john, NY
5, john, NY
6, john, NY
7, john, NY
...
uj5u.com熱心網友回復:
桌子:
SQL> create table test (id number, name varchar2(10), city varchar2(10));
Table created.
其初始內容:
SQL> insert into test values (1, 'John', 'NY');
1 row created.
添加更多行的代碼:
SQL> insert into test
2 select id level, name, city
3 from test
4 connect by level <= 5; --> would be 1250 in your case
5 rows created.
SQL> select * from test;
ID NAME CITY
---------- ---------- ----------
1 John NY
2 John NY
3 John NY
4 John NY
5 John NY
6 John NY
6 rows selected.
SQL>
uj5u.com熱心網友回復:
使用IDENTITY列創建表(或者,如果您使用的是 Oracle 11 或更早版本,則為 a SEQUENCE):
CREATE TABLE test(
id INTEGER
GENERATED ALWAYS AS IDENTITY
CONSTRAINT test_id__pk PRIMARY KEY,
name VARCHAR2(20),
city VARCHAR2(20)
)
然后插入您的行:
INSERT INTO test (name, city) VALUES ('john', 'NY');
(注意:該ID列是自動生成的,您不應包含它。)
然后你可以克隆你的行:
INSERT INTO test (name, city)
SELECT name, city
FROM test
WHERE id = 1
CONNECT BY LEVEL <= 1249;
(同樣,您不需要為該ID列做任何事情,因為它會自動生成。)
然后:
SELECT * FROM test;
輸出:
ID 姓名 城市 1 約翰 紐約 2 約翰 紐約 3 約翰 紐約 ... ... ... 1249 約翰 紐約 1250 約翰 紐約
db<>在這里擺弄
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/363135.html
