sql >> Databáze >  >> RDS >> PostgreSQL

použití Array_append mi při vytváření funkce PostgreSQL dává chybu syntaxe

Z dobré příručky :

Takže array_append vrací pole a musíte tuto návratovou hodnotu něčemu přiřadit. Také si myslím, že chcete array_to_string na konci vaší funkce, nikoli array_to_text . A primes je pole, takže chcete array_append(primes, mycount) místo pokusu o připojení k záznamu v primes .

CREATE OR REPLACE FUNCTION primes (IN integer) RETURNS TEXT AS $$
DECLARE
    counter INTEGER = $1; 
    primes int []; 
    mycount int; 
BEGIN
    WHILE counter != 0 LOOP 
        mycount := count(primes); 
        primes  := array_append(primes, mycount);
        counter := counter - 1; 
    END LOOP;
    RETURN array_to_string(primes, ',');   
END;   
$$ LANGUAGE 'plpgsql';

Nevím, co máte v úmyslu mycount := count(primes); možná jste chtěli říct mycount := array_length(primes, 1); takže byste dostali posloupnost po sobě jdoucích celých čísel v primes .




  1. Zaseknutý při vytváření dotazu MySQL

  2. přidat sloupec do tabulky mysql, pokud neexistuje

  3. Proč MySQL používá latin1_swedish_ci jako výchozí?

  4. Datový model pro sledování vašeho nejcennějšího majetku