PL / pgSQL è il linguaggio procedurale predefinito per il sistema di database PostgreSQL. Le domande su PL / pgSQL dovrebbero probabilmente essere taggate anche "PostgreSQL".
Quando PostgreSQL genera un'eccezione, c'è una riga "CONTESTO" come: ERROR: INSERT has more target COLUMNS than expressions LINE 3: ... ^ QUERY: INSERT INTO ... CONTEXT: PL/pgSQL FUNCTION "XXXXX" line 4 at SQL statement Ma quando lancio un'eccezione, questa linea non c'è. Non ho trovato come aggiungerlo. RAISE EXCEPTION 'blablabla' …
Secondo i documenti: CONCORRENTE Aggiorna la vista materializzata senza bloccare le selezioni simultanee sulla vista materializzata. (...) ... ALTRI CONTENUTI ... Anche con questa opzione, solo un AGGIORNAMENTO alla volta può essere eseguito su una vista materializzata . Ho avuto una funzione che verifica l'ultimo tempo di aggiornamento per una …
Sto cercando di trovare informazioni sulle funzioni definite dall'utente di PostgreSQL nelle prestazioni dei linguaggi procedurali per attività in tempo reale. Come si confrontano con le funzioni integrate? C'è qualche differenza (in termini generali) su come Postgres chiama / gestisce le funzioni plpython vs plpgsql vs pllua (sono interessato al …
In Postgres, otteniamo la "traccia stack" delle eccezioni usando questo codice: EXCEPTION WHEN others THEN GET STACKED DIAGNOSTICS v_error_stack = PG_EXCEPTION_CONTEXT; Questo funziona bene per le eccezioni "naturali", ma se solleviamo un'eccezione usando RAISE EXCEPTION 'This is an error!'; ... quindi non c'è traccia dello stack. Secondo una voce della …
Uso Postgresql 9.1, con Ubuntu 12.04. Ispirato dalla risposta di Craig alla mia domanda concatenazione di tipo setof o registrare setof ho pensato di andare bene con l'utilizzo return query, setof recorde un generatore di serie in questa funzione plpgsql: create or replace function compute_all_pair_by_craig(id_obj bigint) returns setof record as …
Ho un demone di gioco non forking scritto in Perl , che utilizza query acync per scrivere le statistiche dei giocatori in un database PostgreSQL 9.3. Ma quando ho bisogno di leggere qualcosa dal database (come se un giocatore è bandito o se il giocatore ha uno stato VIP), allora …
Cercando di calcolare l'unità di misura più adatta per un elenco di sostanze in cui le sostanze sono fornite in volumi di unità diversi (ma compatibili). Tabella di conversione unità La tabella di conversione delle unità memorizza varie unità e il modo in cui tali unità sono correlate: id unit …
Sto scrivendo uno script di installazione per un'applicazione che è un componente aggiuntivo per un'altra applicazione, quindi voglio verificare se esistono le tabelle per l'altra applicazione. In caso contrario, voglio dare all'utente un errore utile. Tuttavia, non so quale schema conterrà le tabelle. DO LANGUAGE plpgsql $$ BEGIN PERFORM 1 …
Avere un tavolo come questo: CREATE TABLE aggregated_master ( "user" BIGINT, type TEXT, date TIMESTAMP, operations BIGINT, amount NUMERIC, PRIMARY KEY ( "user", type, date ) ); Questa tabella è il master da cui ereditano molte partizioni. Le partizioni vengono eseguite da MONTH nel campo DATA. Ad esempio: la partizione …
Sto importando un gran numero di file di grandi dimensioni in un numero di tabelle da partizionare usando loop all'interno di un blocco di codice plpgsql anonimo $do$. $do$ BEGIN FOR yyyy in 2012..2016 THEN EXECUTE $$COPY table$$||yyyy||$$ FROM 'E:\data\file$$||yyyy||$$.csv DELIMITER ',' CSV;$$; END LOOP; END; $do$ LANGUAGE plpgsql L'intero …
Sto scrivendo un trigger di convalida. Il trigger deve confermare che la somma di un array è uguale a un altro campo. Dal momento che ho molti esempi di questa convalida, voglio scrivere una singola procedura e creare più trigger, ognuno con un diverso set di campi da controllare. Ad …
Mi chiedo se esiste un modo per dichiarare una variabile di tabella dei tipi in PL / pgSQL per contenere i risultati della query? Ad esempio, come posso esprimere qualcosa come: q1 = select * from foo; q2 = select * from bar; for t1 in q1: for t2 in …
We use cookies and other tracking technologies to improve your browsing experience on our website,
to show you personalized content and targeted ads, to analyze our website traffic,
and to understand where our visitors are coming from.
By continuing, you consent to our use of cookies and other tracking technologies and
affirm you're at least 16 years old or have consent from a parent or guardian.