C# 的 Npgsql 如何访问 table 脚本、视图、外键和主键并将它们编写出来
Npgsql for c# how to access table scripts, views, foreign and primary keys and script them out
我正在使用 Npgsql 包在 C# 中编码。我已经像这样连接到 Postgresql
string connString = String.Format("Server={0};Port={1};User Id= {2};Password={3};Database={4};", serverName, "5432", username, password,databaseName);
NpgsqlConnection conn = new NpgsqlConnection(connString);
conn.Open();
有什么方法可以访问表、视图、主键和外键并从 C# 为它们生成创建脚本?
我相当确定 Npgsql 没有任何生成 CREATE 脚本的内置方法,但您可以访问 second answer to this question.
等模式信息
您还可以通过查看各种 pgadmin/schema/pg*.cpp
源文件了解 pgAdmin III 如何生成 CREATE 脚本,例如 here is how pgAdmin III generates SQL for a table. You can also have a look at how psql describes tables here, and there is the monstrous pg_dump utility too.
您可以在您的应用程序中使用适当的标志调用 pg_dump
并相应地处理输出,但是如果您的应用程序的许可证与 pg_dump
所适用的任何许可证不兼容,这可能会引入分发问题在.
如果无法调用 pg_dump
,您可以从 pgAdmin III 或 pg_dump
源代码创建一个库并在您的应用程序中使用它(如果许可允许)。您最不想做的就是推出自己的实现。
我正在使用 Npgsql 包在 C# 中编码。我已经像这样连接到 Postgresql
string connString = String.Format("Server={0};Port={1};User Id= {2};Password={3};Database={4};", serverName, "5432", username, password,databaseName);
NpgsqlConnection conn = new NpgsqlConnection(connString);
conn.Open();
有什么方法可以访问表、视图、主键和外键并从 C# 为它们生成创建脚本?
我相当确定 Npgsql 没有任何生成 CREATE 脚本的内置方法,但您可以访问 second answer to this question.
等模式信息您还可以通过查看各种 pgadmin/schema/pg*.cpp
源文件了解 pgAdmin III 如何生成 CREATE 脚本,例如 here is how pgAdmin III generates SQL for a table. You can also have a look at how psql describes tables here, and there is the monstrous pg_dump utility too.
您可以在您的应用程序中使用适当的标志调用 pg_dump
并相应地处理输出,但是如果您的应用程序的许可证与 pg_dump
所适用的任何许可证不兼容,这可能会引入分发问题在.
如果无法调用 pg_dump
,您可以从 pgAdmin III 或 pg_dump
源代码创建一个库并在您的应用程序中使用它(如果许可允许)。您最不想做的就是推出自己的实现。