PostgreSQL
 sql >> Base de données >  >> RDS >> PostgreSQL

Postgresql - Créer une base de données et une table dynamiquement

Je ferais ceci :

string connStr = "Server=localhost;Port=5432;User Id=postgres;Password=enter;";
var m_conn = new NpgsqlConnection(connStr);
var m_createdb_cmd = new NpgsqlCommand(@"
    CREATE DATABASE IF NOT EXISTS testDb
    WITH OWNER = postgres
    ENCODING = 'UTF8'
    CONNECTION LIMIT = -1;
    ", m_conn);
m_conn.Open();
m_createdb_cmd.ExecuteNonQuery();
m_conn.Close();

connStr = "Server=localhost;Port=5432;User Id=postgres;Password=enter;Database=testDb";
m_conn = new NpgsqlConnection(connStr);
m_createtbl_cmd = new NpgsqlCommand(
   "CREATE TABLE table1(ID CHAR(256) CONSTRAINT id PRIMARY KEY, Title CHAR)"
   , m_conn);
m_conn.Open();
m_createtbl_cmd.ExecuteNonQuery();
m_conn.Close();

L'utilisation de var ici n'est pas recommandé. Je l'ai utilisé car je ne sais pas quels sont les types renvoyés mais vous devriez.

Notez l'utilisation d'une chaîne brute (@ ). Cela simplifie la création de chaînes.

N'utilisez pas d'identifiants entourés de guillemets doubles dans Postgresql à moins que l'identifiant ne soit par ailleurs illégal. Cela vous rendra la vie beaucoup plus difficile.