![](/img/trans.png)
[英]Insert data from column to another different table column with modifying in PSQL
[英]Insert numbers into a column PSQL
我有一個名為 Nums 的表,其中只有一個名為 text 的列。 我需要創建一個 PSQL 查詢,它將為 100000 到 199999 之間的每個數字插入一行。
Row number is 100000
Row number is 100001
Row number is 100002
...
Row number is 199999
顯然,如果范圍更小並且只有 10 個數字,則可以使用 10 個簡單的插入語句來完成,但事實並非如此。 我是 PSQL 的新手,想知道如何實現這一點? 是否需要某種循環?
您可以使用遞歸查詢。
with recursive cte as
(
select 100000 as n
union all
select n + 1
from cte
where n < 199999
)
select * from cte;
試試這個dbfiddle
假設您的意思是數據庫的“Postgres”,請使用generate_series()
:
insert into nums (text)
select n
from generate_series(100000, 199999, 1) gs(n);
Postgres 會自動將n
轉換為字符串——盡管將數字存儲為字符串似乎並不常見。 您也可以明確地使用select n::text
。
編輯:
如果您需要完整的字符串,它看起來像:
insert into nums (text)
select 'Row number is ' || (n::text)
from generate_series(100000, 199999, 1) gs(n);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.