无法使用 C 中的 libpq 在数据库中创建 table

can not create a table in database with libpq in C

我创建了一个 c 函数,它在我的 postgresql 数据库上创建了一个 table。这里:

#include <stdio.h>
#include <libpq-fe.h>
#include <stdlib.h>

PGconn *connection;
PGresult  *re;

void create_table(){
        re= PQexec(connection, "SELECT to_regclass('fp_stores_data')");
        if(!re){
                PQclear(re);

                re = PQexec(connection ,"CREATE TABLE test(name VARCHAR(3))");

                if(PQresultStatus(re)==PGRES_COMMAND_OK){
                        printf("table created!");
                }else{
                        printf("failed to create table!");
                }
        }else{
                printf("table was created befor!");
        }
        PQclear(re);
}


int main() {
        connection = PQconnectdb("user=username password=123 dbname=projectdb");
        create_table();
        PQfinish(connection);
        return 0;
}

但每次我 运行 程序都会打印 failed to create table! 并且数据库中不会有任何具有该 table 名称的内容。

使用PQresultErrorMessage获取您执行的SQL的错误文本,例如:

printf("%s\n", PQresultErrorMessage(re));

PQerrorMessage 以获取与您的连接相关的任何错误的错误文本,例如:

printf("%s\n", PQerrorMessage(connection));

这些函数的postgresql文档在这里: https://www.postgresql.org/docs/current/libpq-exec.html