pgsql komut dilinde bir işlev oluşturuyorum ve bu noktada yapmak istediğim bir sorgunun sonuçları üzerinde yinelemeli ve her satır için belirli bir şey yapın. Şu anki denemem, temprow
'un temprow user_data.users%rowtype
olarak bildirildiği yerdir. PostgreSQL - Sorgu sonuçları üzerinde yineleyin
FOR temprow IN
SELECT * FROM user_data.users ORDER BY user_seasonpts DESC LIMIT 10
LOOP
SELECT user_id,user_seasonpts INTO player_idd,season_ptss FROM temprow;
INSERT INTO user_data.leaderboards (season_num,player_id,season_pts) VALUES (old_seasonnum,player_idd,season_ptss);
END LOOP;
Ancak bundan aşağıdaki hatayı alıyorum:
ERROR: relation "temprow" does not exist
Söz konusu kod şudur. Ne yapmak istediğimi açıksa, bana doğru yolu gösterebilir misin?
olurdu yapmanın doğru yolu: "dont't" döngü. Yaptığınız şey düz SQL kullanarak mükemmel bir şekilde yapılabilir: 'afişlere ekleme (a, b, c) kullanıcılardan x, y, z 'yi seçin,' – wildplasser
Cevapta gördüğüm gibi, 'old_seasonnum' bu noktada seçili değil user_data.users 'dan, ancak önceki bir noktadan. –
Bir ifadenin gerekli olduğu bir sabit (veya plpgsql veya hazır ifadelerde bir değişken) kullanılmasına izin verilir: 'foo'ya ekle (a, b, c) çubuktan 42, y, z öğesini seçin; 'old_seasonnum' kodunuz bile tanımlanmamış. – wildplasser