Als «functions» getaggte Fragen

Eine Funktion führt eine bestimmte Arbeit aus und verwendet normalerweise Parameter als Eingabe. In Bezug auf Datenbanken können diese spezifisch für SQL oder den Datenbankanbieter sein.

1
Kann die Deklaration der Funktionsvolatilität IMMUTABLE die Leistung beeinträchtigen?
Postgres - Funktionen werden mit deklarierten Volatilität Klassifizierung VOLATILE, STABLEoderIMMUTABLE . Es ist bekannt, dass das Projekt mit diesen Bezeichnungen für integrierte Funktionen sehr streng ist. Und das aus gutem Grund. Prominentes Beispiel: Ausdrucksindizes erlauben nur IMMUTABLEFunktionen und diese müssen wirklich unveränderlich sein, um falsche Ergebnisse zu vermeiden. Benutzerdefinierte Funktionen …

1
Postgres: Abschneiden, wenn in der psql-Funktion mit Parameter vorhanden
Ich versuche, eine psql-Funktion zu erhalten, die einen bestimmten Tabellennamen abschneidet, wenn er existiert. Ich habe mehrere Funktionen ausprobiert, aber bisher hat keine davon funktioniert. Hier ist der Code: CREATE OR REPLACE FUNCTION truncateIfExists(tableName TEXT) returns void as $$ BEGIN EXECUTE format( 'IF EXISTS ( SELECT * FROM information_schema.tables WHERE …

3
Leistung von Inline-TVF im Vergleich zu Ansichten
Ich habe eine Datenbank, in der ich Inline-TVFs (Tabellenwertfunktionen) anstelle von Ansichten verwende. Zum Beispiel könnte ich zwei Tabellen mit den Namen [Automodell] und [Autohersteller] haben, die ich innerhalb der TVF [fnCarBrands] zusammenstelle. Diese TVFs werden dann von anderen TVFs aufgerufen, um die weitere Verarbeitung und Berichterstattung durchzuführen. Also könnte …


1
Warum funktioniert "SET LOCAL statement_timeout" mit PostgreSQL-Funktionen nicht wie erwartet?
Nach meinem Verständnis werden PostgreSQL-Funktionen ähnlich wie eine Transaktion ausgeführt. Als ich jedoch versuchte, "SET LOCAL statement_timeout" innerhalb einer Funktion zu setzen, funktionierte dies nicht. So funktioniert es innerhalb einer Transaktion: BEGIN; SET LOCAL statement_timeout = 100; SELECT pg_sleep(10); COMMIT; wo die Ergebnisse sind (wie erwartet): BEGIN SET ERROR: canceling …

2
Postgresql-Funktion zum Erstellen einer Tabelle
Ich möchte eine Funktion erstellen, um eine Tabelle mit einer bestimmten Struktur zu erstellen, die einen Teil des Tabellennamens als Argument verwendet, sodass der Name der Tabelle t_ lautet. Ähnlich wie dies: CREATE OR REPLACE FUNCTION create_table_type1(t_name VARCHAR(30)) RETURNS VOID AS $$ BEGIN EXECUTE "CREATE TABLE IF NOT EXISTS t_"|| …

1
Ist es möglich, SQL Server-Funktionen zu überladen?
Ist es möglich, eine SQL Server-Funktion zu überlasten? Entweder ein Skalar wie ltrim oder eine Aggregatfunktion wie count? Auch wenn dies eine wirklich, wirklich, schlechte Idee war. Ist es möglich? Etwas von einem Duplikat der Überladung von benutzerdefinierten T-SQL-Funktionen? Ich würde sagen, es ist nicht 100% ein Duplikat, da dies …

1
Warum läuft eine Set Returning Function (SRF) in einer FROM-Klausel langsamer?
Dies ist eine datenbankinterne Frage. Ich verwende PostgreSQL 9.5 und frage mich, warum Set Returning Functions (SRFs), auch als TVFs (Table Valued Functions) bezeichnet, in einer FROMKlausel langsamer ausgeführt werden , z. B. wenn ich diese Befehle ausführe. CREATE TABLE foo AS SELECT * FROM generate_series(1,1e7); SELECT 10000000 Time: 5573.574 …

4
Die effizienteste Methode zum Aufrufen derselben Tabellenwertfunktion für mehrere Spalten in einer Abfrage
Ich versuche, eine Abfrage zu optimieren, bei der dieselbe Tabellenwertfunktion (TVF) für 20 Spalten aufgerufen wird. Als erstes habe ich die Skalarfunktion in eine Inline-Tabellenwertfunktion konvertiert. Verwenden Sie CROSS APPLYdie leistungsstärkste Methode, um dieselbe Funktion für mehrere Spalten in einer Abfrage auszuführen? Ein vereinfachtes Beispiel: SELECT Col1 = A.val ,Col2 …

3
MySQL-Möglichkeit zum Erstellen globaler Routinen (gespeicherte Prozeduren und / oder Funktionen)
Ist es möglich, global verfügbare Routinen zu definieren? Es scheint, dass jede Routine in einem Bereich der Datenbank erstellt werden muss. Beim Versuch, eine Routine über die Konsole zu erstellen (ohne vorherige Ausgabe use dbname), wird folgende Fehlermeldung angezeigt: ERROR 1046 (3D000): No database selected Wir haben Tonnen identischer Datenbanken …


3
Funktion in zentraler Datenbank erstellen oder in jeder Datenbank wiederholen?
Einer meiner Entwickler hat eine SQL-Funktion geschrieben, die wie die VB.Net-Funktion (LastIndexOf) funktioniert und diese veröffentlichen möchte. Meine Frage ist, was wäre der Grund, dies in eine zentrale Datenbank zu stellen, anstatt es in jede Benutzerdatenbank zu stellen? Der Entwickler hat versucht, es in das Systemschema seiner Master-Datenbank einzufügen, damit …

3
Wie erstelle ich eine benutzerdefinierte Aggregatfunktion?
Ich benötige eine Aggregatfunktion, die MySQL nicht bietet. Ich möchte, dass es in MySQLs SQL-Version ist (dh nicht in C). Wie mache ich das? Ich bleibe beim Erstellen einer Aggregatfunktion - die Dokumente scheinen nicht zu erwähnen, wie dies gemacht wird. Beispiele für die gewünschte Verwendung einer productFunktion: mysql> select …

1
Wie verwende ich ein Array als Argument für eine VARIADIC-Funktion in PostgreSQL?
Ich versuche json_extract_path_text(), mithilfe des citextModuls eine Version zu erstellen , bei der die Groß- und Kleinschreibung nicht berücksichtigt wird. Ich möchte, dass dies ein einfacher Wrapper um die eingebaute Funktion ist. Der einzige Unterschied besteht darin, dass sie citextstattdessen als erster Parameter akzeptiert wird json. Ich möchte, dass dies …

2
Mehrere Funktionen vom Trigger aus aufrufen?
Ich führe PostgreSQL-9.2.4 aus Ist es möglich, 2 Funktionen von einem Trigger aus aufzurufen? Angenommen, ich habe zwei Funktionen für zwei verschiedene Tabellen, die ausgeführt werden sollen, wenn folgende Triggerbrände auftreten: Auslösen: CREATE TRIGGER start ON system_status FOR EACH ROW WHEN ((new.event = start_task)) EXECUTE PROCEDURE ...() Funktion 1: (Wenn …

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.