Was ist die PostgreSQL-entspricht der TSQL - "go" - Anweisung?
In T-SQL kann ich sagen:
IF EXISTS (SELECT name
FROM sysobjects
WHERE name = 'tableName')
DROP TABLE [dbo].[tableName]
go
Was ist der batch-terminator-äquivalent (d.h. "go") für die folgenden SQL-Befehl?
DROP TABLE IF EXISTS tableName
- Ich verstehe nicht - sind Sie auf der Suche nach einem anonymen code-block: postgresql.org/docs/9.4/static/plpython-do.html ? Ihre
DROP TABLE
Befehl sieht-sound auf seine eigenen. GO
ist nicht eine Aussage - es ist ein delimiter verwendet, die von SQL Server Management Studio nur. Es ist nicht Teil des SQL / T-SQL-Sprache- Ich denke, Sie wollen postgres ' s meta-command-separator: Versuchen Sie einen doppelten umgekehrten Schrägstrich "\\" anstelle von "gehen"
- Postgres verwendet die Trennzeichen definiert werden, die in der SQL-Sprache: eine
;
und Sie sollten beginnen, verwenden Sie für SQL Server als auch: sqlblog.com/blogs/aaron_bertrand/archive/2012/09/25/16567.aspx - Ich kann sagen
GO
endet eine Rahmen-Anweisung in SQL Server und durch die Verwendung von lokalen Variablen gelöscht, Ist;
auch beendet einen Umfang wie das? - Ersetzen Sie die T-SQL-batch-terminator
GO
mit dem PostgreSQL-charge-terminator;
Du musst angemeldet sein, um einen Kommentar abzugeben.
Den PostgreSQL-äquivalent wäre:
Also der terminator ist einfach der SQL-standard semi-colon
;
.GO
.GO
ist eine batch-Anweisung terminator. Mehrere Anweisungen ausgeführt werden dürfen, die in einem batch, undGO
beendet die batch.GO
ist wichtig, weil es kann verwendet werden, erstellen Sie ein einzelnes Skript, das den normalen Anweisungen und Aussagen, das muss die einzige Anweisung in einem batch sein.Aus der Dokumentation zu SQL Server:
Die syntax erlaubt zu haben, eine Zahl, die nach dem Schlüsselwort go, wiederholen Sie die vorherigen Zeilen eine Anzahl von Zeiten. Syntax:
Trennt batch. Es ist nicht ein äquivalent für PostgreSQL. Das Semikolon beendet eine Anweisung, keine batch. Und es ist nicht möglich, an einer Reihe von Hinrichtungen.
Go Referenzen: https://msdn.microsoft.com/it-it/library/ms188037.aspx
Kommt es an.
GO
ist, separator (Trennzeichen) - das ist ein spezielles Schlüsselwort, das nicht in jeder SQL-Anweisung. PostgreSQL verwendet Semikolon;
als Trennzeichen. In der psql-Konsole, die Sie verwenden können\g
aber es ist nicht oft benutzt. Manchmal sind die Leute verwendet
\gset
dass die SQL-Anweisung ausführen und Ergebnis speichern zupsql
lokalen Variablen. PostgreSQL verwenden können, Semikolon, weil PostgreSQL-SQL-Anweisungen nicht enthalten dieses symbol - Es ist eine andere gegen T-SQL, da T-SQL ermöglicht es einige prozedurale Konstrukte direkt in SQL und T-SQL erfordert spezielle Trennzeichen. PostgreSQL nicht zulässt, dass es - prozeduralen code wird eingegeben als string - und es ist getrennt durch Apostrophe oder benutzerdefinierte Zeichenfolge als Trennzeichen. Also prozedurale, bedingte Tropfen kann, sieht wie folgt aus:oder mehr einfach
DROP TABLE IF EXISTS someTable
(groß-und Kleinschreibung der syntax). Ich verwendete benutzerdefinierte string separator$$