PostgreSQL
 sql >> Baza danych >  >> RDS >> PostgreSQL

Zbiorcza tabela danych C# do tabeli postgresql

PostgreSQL zdecydowanie ma kopię zbiorczą (w rzeczywistości nazywa się to copy ) i ma ładne opakowanie dla platformy .NET. Jeśli ładujesz, chcesz użyć NpgsqlCopyIn , a jeśli wyodrębniasz dane, możesz użyć NpgsqlCopyOut.

Twoje pytanie jest trochę niejasne w szczegółach — nie znam pól w Twojej tabeli danych ani niczego o rzeczywistej bazie danych, więc weź to jako krótki przykład zbiorczego wstawiania danych do tabeli za pomocą C#/PostgreSQL:

    NpgsqlCopyIn copy = new NpgsqlCopyIn("copy table1 from STDIN WITH NULL AS '' CSV;",
        conn);
    copy.Start();

    NpgsqlCopySerializer cs = new NpgsqlCopySerializer(conn);
    cs.Delimiter = ",";

    foreach (var record in RecordList)
    {
        cs.AddString(record.UserId);
        cs.AddInt32(record.Age);
        cs.AddDateTime(record.HireDate);
        cs.EndRow();
    }

    cs.Close();
    copy.End();

-- Edytuj 27.08.2019 --

Konstrukcja dla Npgsql uległa całkowitej zmianie. Poniżej znajduje się schemat dla tego samego przykładu powyżej, przy użyciu importu binarnego (tekst jest również dostępny):

using (var writer = conn.BeginBinaryImport(
    "copy user_data.part_list from STDIN (FORMAT BINARY)"))
{
    foreach (var record in RecordList)
    {
        writer.StartRow();
        writer.Write(record.UserId);
        writer.Write(record.Age, NpgsqlTypes.NpgsqlDbType.Integer);
        writer.Write(record.HireDate, NpgsqlTypes.NpgsqlDbType.Date);
    }

    writer.Complete();
}


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. pobierz ostatnie trzymiesięczne rekordy z tabeli

  2. PostgreSQL - ogranicz całkowity rozmiar logu

  3. Tabela partycjonowania na podstawie pierwszej litery pola varchar

  4. Jak mogę wykonać kod pl/pgsql bez tworzenia funkcji?

  5. PostgreSQL + Hibernate + Spring automatyczne tworzenie bazy danych