2016-07-26 3 views
-1
declare @id int 
SET @id = 1 

WHILE (@id <= 100) LOOP 
BEGIN 
    INSERT INTO testing (name) 
    VALUES ('nick' + CONVERT(VARCHAR(5), @id),) 

    SELECT @id = @id + 1 
END LOOP; 

このスクリプトをSQL Serverで試してみましたが、うまくいきましたがPostgreSQLで動作しません。SQL Serverでこのスクリプトを試してみましたが、postgres sqlで動作しません

それは、このエラーがスローされます。

"ERROR: syntax error at end of input LINE 15: END LOOP;"

答えて

0

あなたはPL/pgSQLの機能(またはdoブロック)の外のPostgresにそのような手続きのコードを使用することはできません

Postgresはまた、SQL標準を尊重します||を使用して文字列を連結し、cast()演算子を使用して異なるデータ型に値をキャストします。

Postgresでは、このためのループは必要ありません。generate_series()を使って動的に行を生成することができます。

insert into testing(name) 
select 'nick' || cast(i as varchar) 
from generate_series(1,100) i; 
関連する問題