Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
In dieser Schnellstartanleitung erfahren Sie, wie Sie mit Code in der Sprache Go (golang) eine Verbindung mit einer Azure-Datenbank für PostgreSQL herstellen. Es wird veranschaulicht, wie Sie SQL-Anweisungen zum Abfragen, Einfügen, Aktualisieren und Löschen von Daten in der Datenbank verwenden. In diesem Artikel wird davon ausgegangen, dass Sie mit der Entwicklung in Go vertraut sind, aber sie sind neu bei der Arbeit mit Azure Database for PostgreSQL.
Voraussetzungen
In dieser Schnellstartanleitung werden die ressourcen verwendet, die in der Erstellung einer Azure-Datenbank für PostgreSQL als Ausgangspunkt erstellt wurden.
Von Bedeutung
Verwenden Sie einen Server mit aktiviertem öffentlichen Zugriff (zulässige IP-Adressen) für diese Schnellstartanleitung. Für die Durchführung dieses Schnellstarts mit einem Server mit aktiviertem privatem Zugriff (VNet-Integration) sind unter Umständen zusätzliche Schritte erforderlich, die hier nicht behandelt werden.
Stellen Sie sicher, dass die IP-Adresse, von der aus Sie eine Verbindung herstellen, den Firewallregeln des Servers mithilfe des Azure Portals oder Azure CLI hinzugefügt wird.
Installieren von Go und dem pq-Connector
Installieren Sie Go und den reinen Go-Postgres-Treiber (pq) auf Ihrem eigenen Computer. Führen Sie je nach Plattform die geeigneten Schritte aus:
Laden Sie Go für Microsoft Windows herunter, und installieren Sie es gemäß der Installationsanleitung.
Starten Sie die Eingabeaufforderung über das Startmenü.
Erstellen Sie einen Ordner für Ihr Projekt, z. B.
mkdir %USERPROFILE%\go\src\postgresqlgo.Wechseln Sie zum Projektordner. Beispiel:
cd %USERPROFILE%\go\src\postgresqlgo.Legen Sie die Umgebungsvariable für GOPATH so fest, dass sie auf das Quellcodeverzeichnis verweist.
set GOPATH=%USERPROFILE%\go.Führen Sie go mod init aus, um ein Modul im aktuellen Verzeichnis zu erstellen. Beispiel:
go mod init postgresqlgo.- Der Parameter
<module_path>ist im Allgemeinen ein Speicherort in einem GitHub-Repository, etwagithub.com/<your_github_account_name>/<directory>. - Wenn Sie eine Befehlszeilen-App als Test erstellen und die App nicht veröffentlichen, muss
<module_path>nicht auf einen tatsächlichen Speicherort verweisen. Beispiel:postgresqlgo.
- Der Parameter
Installieren Sie den reinen Go-Postgres-Treiber (pq) durch Ausführen des Befehls
go get github.com/lib/pq.Zusammenfassung: Installieren Sie Go, und führen Sie anschließend an der Eingabeaufforderung die folgenden Befehle aus:
mkdir %USERPROFILE%\go\src\postgresqlgo cd %USERPROFILE%\go\src\postgresqlgo set GOPATH=%USERPROFILE%\go go mod init postgresqlgo go get github.com/lib/pq
Abrufen von Verbindungsinformationen
Rufen Sie die Verbindungsinformationen ab, die zum Herstellen einer Verbindung mit der Azure-Datenbank für PostgreSQL erforderlich sind. Sie benötigen den vollqualifizierten Servernamen und die Authentifizierungsanmeldeinformationen.
- Melden Sie sich beim Azure-Portal an.
- Wählen Sie im linken Menü im Azure-Portal "Alle Ressourcen" aus, und suchen Sie dann nach dem server, den Sie erstellt haben (z. B. mydemoserver).
- Wählen Sie den Servernamen aus.
- Notieren Sie sich im Bereich Übersicht des Servers den Servernamen und den Anmeldenamen des Serveradministrators. Wenn Sie Ihr Kennwort vergessen haben, können Sie es in diesem Bereich auch zurücksetzen.
Erstellen und Ausführen von Go-Code
- Zum Schreiben von Go-Code verwenden Sie einen einfachen Texteditor, z. B. Notepad in Microsoft Windows, Nano in Ubuntu oder TextEdit in macOS. Wenn Sie eine umfangreichere interaktive Entwicklungsumgebung (IDE) bevorzugen, probieren Sie GoLand von JetBrains, Visual Studio Code von Microsoft oder Atom aus.
- Fügen Sie den Go-Code aus den folgenden Abschnitten in Textdateien ein, und speichern Sie ihn in Ihrem Projektordner mit der Dateierweiterung *.go, z. B. Windows Pfad
%USERPROFILE%\go\src\postgresqlgo\createtable.gooder Linux-Pfad~/go/src/postgresqlgo/createtable.go. - Suchen Sie im Code nach den Konstanten
HOST,DATABASE,USERundPASSWORD, und ersetzen Sie die Beispielwerte durch Ihre eigenen Werte. Wenn Sie Ihren Azure Database for PostgreSQL-Server erstellen, erstellen Sie eine Datenbank mit dem Namen "Postgres". Sie können diese Datenbank oder eine andere Datenbank verwenden, die Sie erstellen. - Starten Sie die Eingabeaufforderung oder die Bash-Shell. Wechseln Sie in das Verzeichnis Ihres Projektordners. Verwenden Sie
cd %USERPROFILE%\go\src\postgresqlgo\z. B. auf Windows . Verwenden Siecd ~/go/src/postgresqlgo/unter Linux . Einige der genannten IDE-Umgebungen bieten Debug- und Laufzeitfunktionen ohne Shell-Befehle. - Geben Sie den Befehl
go run createtable.goein, um den Code auszuführen und die Anwendung zu kompilieren und auszuführen. - Alternativ können Sie den Code mit
go build createtable.goin eine systemeigene Anwendung umwandeln. Starten Siecreatetable.exedann, um die Anwendung auszuführen.
Herstellen einer Verbindung und Erstellen einer Tabelle
Verwenden Sie den folgenden Code, um eine Tabelle mithilfe der CREATE TABLE SQL-Anweisung zu verbinden und zu erstellen, gefolgt von INSERT INTO SQL-Anweisungen, um zeilen zur Tabelle hinzuzufügen.
Der Code importiert drei Pakete: das sql-Paket, das pq-Paket als Treiber für die Kommunikation mit dem PostgresSQL-Server und das fmt-Paket für die Ein- und Ausgabe in der Befehlszeile.
Der Code ruft die Methode sql.Open() auf, um eine Verbindung mit der Datenbank Azure Database for PostgreSQL herzustellen, und überprüft die Verbindung mithilfe der Methode db.Ping(). Ein Datenbankhandle wird durchgängig für den Verbindungspool des Datenbankservers eingesetzt. Im Code wird die Exec()-Methode mehrfach aufgerufen, um mehrere SQL-Befehle auszuführen. Jedes Mal prüft eine benutzerdefinierte Methode checkError(), ob ein Fehler aufgetreten ist, und löst einen Panic aus, um die Ausführung zu beenden, wenn ein Fehler vorliegt.
Ersetzen Sie die Parameter HOST, DATABASE, USER und PASSWORD durch Ihre eigenen Werte.
package main
import (
"database/sql"
"fmt"
_ "github.com/lib/pq"
)
const (
// Initialize connection constants.
HOST = "mydemoserver.postgres.database.azure.com"
DATABASE = "postgres"
USER = "mylogin"
PASSWORD = "<server_admin_password>"
)
func checkError(err error) {
if err != nil {
panic(err)
}
}
func main() {
// Initialize connection string.
var connectionString string = fmt.Sprintf("host=%s user=%s password=%s dbname=%s sslmode=require", HOST, USER, PASSWORD, DATABASE)
// Initialize connection object.
db, err := sql.Open("postgres", connectionString)
checkError(err)
err = db.Ping()
checkError(err)
fmt.Println("Successfully created connection to database")
// Drop previous table of same name if one exists.
_, err = db.Exec("DROP TABLE IF EXISTS inventory;")
checkError(err)
fmt.Println("Finished dropping table (if existed)")
// Create table.
_, err = db.Exec("CREATE TABLE inventory (id serial PRIMARY KEY, name VARCHAR(50), quantity INTEGER);")
checkError(err)
fmt.Println("Finished creating table")
// Insert some data into table.
sql_statement := "INSERT INTO inventory (name, quantity) VALUES ($1, $2);"
_, err = db.Exec(sql_statement, "banana", 150)
checkError(err)
_, err = db.Exec(sql_statement, "orange", 154)
checkError(err)
_, err = db.Exec(sql_statement, "apple", 100)
checkError(err)
fmt.Println("Inserted 3 rows of data")
}
Daten lesen
Verwenden Sie den folgenden Code, um die Daten mit einer SQL-Anweisung des Typs SELECT zu verbinden und zu lesen.
Der Code importiert drei Pakete: das sql-Paket, das pq-Paket als Treiber für die Kommunikation mit dem PostgresSQL-Server und das fmt-Paket für die Ein- und Ausgabe in der Befehlszeile.
Der Code ruft die Methode sql.Open() auf, um eine Verbindung mit der Azure Database for PostgreSQL-Datenbank herzustellen, und überprüft die Verbindung mithilfe der Methode db.Ping(). Ein Datenbankhandle wird durchgängig für den Verbindungspool des Datenbankservers eingesetzt. Die Auswahlabfrage wird durch Aufrufen der Methoden db ausgeführt. Query() und die resultierenden Zeilen werden in einer Variablen vom Typ "Rows" gespeichert. Der Code liest die Spaltenwerte in der aktuellen Zeile mithilfe der Methode rows.Scan() und durchläuft die Zeilen mithilfe des Iterators rows.Next(), bis keine weiteren Zeilen mehr vorhanden sind. Die Spaltenwerte jeder Zeile werden in der Konsole ausgegeben. Jedes Mal, wenn eine benutzerdefinierte checkError()-Methode verwendet wird, um zu überprüfen, ob ein Fehler aufgetreten ist, und Panik, um zu beenden, wenn ein Fehler auftritt.
Ersetzen Sie die Parameter HOST, DATABASE, USER und PASSWORD durch Ihre eigenen Werte.
package main
import (
"database/sql"
"fmt"
_ "github.com/lib/pq"
)
const (
// Initialize connection constants.
HOST = "mydemoserver.postgres.database.azure.com"
DATABASE = "postgres"
USER = "mylogin"
PASSWORD = "<server_admin_password>"
)
func checkError(err error) {
if err != nil {
panic(err)
}
}
func main() {
// Initialize connection string.
var connectionString string = fmt.Sprintf("host=%s user=%s password=%s dbname=%s sslmode=require", HOST, USER, PASSWORD, DATABASE)
// Initialize connection object.
db, err := sql.Open("postgres", connectionString)
checkError(err)
err = db.Ping()
checkError(err)
fmt.Println("Successfully created connection to database")
// Read rows from table.
var id int
var name string
var quantity int
sql_statement := "SELECT * from inventory;"
rows, err := db.Query(sql_statement)
checkError(err)
defer rows.Close()
for rows.Next() {
switch err := rows.Scan(&id, &name, &quantity); err {
case sql.ErrNoRows:
fmt.Println("No rows were returned")
case nil:
fmt.Printf("Data row = (%d, %s, %d)\n", id, name, quantity)
default:
checkError(err)
}
}
}
Aktualisieren von Daten
Verwenden Sie den folgenden Code, um die Daten mit einer SQL-Anweisung des Typs UPDATE zu verbinden und zu aktualisieren.
Der Code importiert drei Pakete: das sql-Paket, das pq-Paket als Treiber für die Kommunikation mit dem Postgres-Server und das fmt-Paket für die Ein- und Ausgabe in der Befehlszeile.
Der Code ruft die Methode sql.Open() auf, um eine Verbindung mit der Azure Database for PostgreSQL-Datenbank herzustellen, und überprüft die Verbindung mithilfe der Methode db.Ping(). Ein Datenbankhandle wird durchgängig für den Verbindungspool des Datenbankservers eingesetzt. Im Code wird die Exec()-Methode aufgerufen, um die SQL-Anweisung auszuführen, mit der die Tabelle aktualisiert wird. Eine benutzerdefinierte checkError()-Methode wird verwendet, um das Auftreten eines Fehlers zu überprüfen, und der Vorgang wird beendet, falls dies der Fall ist.
Ersetzen Sie die Parameter HOST, DATABASE, USER und PASSWORD durch Ihre eigenen Werte.
package main
import (
"database/sql"
_ "github.com/lib/pq"
"fmt"
)
const (
// Initialize connection constants.
HOST = "mydemoserver.postgres.database.azure.com"
DATABASE = "postgres"
USER = "mylogin"
PASSWORD = "<server_admin_password>"
)
func checkError(err error) {
if err != nil {
panic(err)
}
}
func main() {
// Initialize connection string.
var connectionString string =
fmt.Sprintf("host=%s user=%s password=%s dbname=%s sslmode=require", HOST, USER, PASSWORD, DATABASE)
// Initialize connection object.
db, err := sql.Open("postgres", connectionString)
checkError(err)
err = db.Ping()
checkError(err)
fmt.Println("Successfully created connection to database")
// Modify some data in table.
sql_statement := "UPDATE inventory SET quantity = $2 WHERE name = $1;"
_, err = db.Exec(sql_statement, "banana", 200)
checkError(err)
fmt.Println("Updated 1 row of data")
}
Löschen von Daten
Verwenden Sie den folgenden Code, um eine Verbindung mit der Datenbank herzustellen und Daten mithilfe einer DELETE SQL-Anweisung zu löschen.
Der Code importiert drei Pakete: das sql-Paket, das pq-Paket als Treiber für die Kommunikation mit dem Postgres-Server und das fmt-Paket für die Ein- und Ausgabe in der Befehlszeile.
Der Code ruft die Methode sql.Open() auf, um eine Verbindung mit Azure Database for PostgreSQL herzustellen, und prüft die Verbindung mit der Methode db.Ping(). Ein Datenbankhandle enthält den Verbindungspool für den Datenbankserver und wird überall verwendet. Im Code wird die Exec()-Methode aufgerufen, um die SQL-Anweisung auszuführen, die eine Zeile aus der Tabelle löscht. Eine benutzerdefinierte checkError() Methode überprüft, ob ein Fehler aufgetreten ist und beendet wird, wenn ein Fehler auftritt.
Ersetzen Sie die Parameter HOST, DATABASE, USER und PASSWORD durch Ihre eigenen Werte.
package main
import (
"database/sql"
_ "github.com/lib/pq"
"fmt"
)
const (
// Initialize connection constants.
HOST = "mydemoserver.postgres.database.azure.com"
DATABASE = "postgres"
USER = "mylogin"
PASSWORD = "<server_admin_password>"
)
func checkError(err error) {
if err != nil {
panic(err)
}
}
func main() {
// Initialize connection string.
var connectionString string =
fmt.Sprintf("host=%s user=%s password=%s dbname=%s sslmode=require", HOST, USER, PASSWORD, DATABASE)
// Initialize connection object.
db, err := sql.Open("postgres", connectionString)
checkError(err)
err = db.Ping()
checkError(err)
fmt.Println("Successfully created connection to database")
// Delete some data from table.
sql_statement := "DELETE FROM inventory WHERE name = $1;"
_, err = db.Exec(sql_statement, "orange")
checkError(err)
fmt.Println("Deleted 1 row of data")
}
Bereinigen von Ressourcen
Um alle während dieser Schnellstartanleitung verwendeten Ressourcen zu bereinigen, löschen Sie die Ressourcengruppe mithilfe des folgenden Befehls:
az group delete \
--name $AZ_RESOURCE_GROUP \
--yes
Verwandte Inhalte
- Verwalten Sie Azure-Datenbank für PostgreSQL mithilfe des Azure-Portals.
- Schnellstart: Verwenden von Python zum Verbinden und Abfragen von Daten in Azure-Datenbank für PostgreSQL.
- Schnellstart: Verwenden von Java zum Verbinden und Abfragen von Daten aus einer Azure-Datenbank für PostgreSQL.
- Schnellstart: Verwenden Sie .NET (C#), um Daten aus einer Azure-Datenbank für PostgreSQL zu verbinden und abzufragen.
- Schnellstart: Verwenden von PHP zum Verbinden und Abfragen von Daten aus einer Azure-Datenbank für PostgreSQL.
- Schnellstart: Verwenden Sie Azure CLI, um Daten aus einer Azure-Datenbank für PostgreSQL zu verbinden und abzufragen.
- Schnellstart: Importieren von Daten aus der Azure-Datenbank für PostgreSQL in Power BI.