Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/postgresql/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Node.js 如果表不存在,则不执行任何操作_Node.js_Postgresql - Fatal编程技术网

Node.js 如果表不存在,则不执行任何操作

Node.js 如果表不存在,则不执行任何操作,node.js,postgresql,Node.js,Postgresql,我只想在表存在时执行查询 如果表不存在,则什么也不做 因此,我想检查表是否存在,然后检查表中是否有一些数据,如果有,选择它们 我想要这个/client.query从mytable、functionerr、res中选择*{ 因此,我尝试了以下方法: client.query("do"+ " $$"+ "begin"+ " if (select count(*) from info

我只想在表存在时执行查询

如果表不存在,则什么也不做

因此,我想检查表是否存在,然后检查表中是否有一些数据,如果有,选择它们

我想要这个/client.query从mytable、functionerr、res中选择*{

因此,我尝试了以下方法:

client.query("do"+
                    " $$"+
                    "begin"+
                    " if (select count(*) from information_schema.columns" +
                    "     where table_schema = 'public' " +
                    "    and table_name = 'mytable' )"+
                    " then "+
                    "DO NOTHING;"+
                    "else "+
                    "SELECT * FROM mytable;" +
                    "end if;"+
                    "end;"+
                    "$$"+
                    ";", function(err, res)  {
我不确定DoNothing的用法,现在我收到了一个错误:语法错误等于或接近于NOTHING

如果我不使用:

 client.query("do"+
                        " $$"+
                        "begin"+
                        " if NOT (select count(*) = 0  from information_schema.columns" +
                        "     where table_schema = 'public' " +
                        "    and table_name = 'mytable' )"+
                        " then "+
                        "SELECT * FROM mytable;" +
                        "end if;"+
                        "end;"+
                        "$$"+
                        ";", function(err, res)  {
当表格为空时,t工作,但当我填写表格时,它应该从表格中选择*时,它抛出错误:查询没有结果数据的目的地

client.query("select count(*) c from information_schema.columns" +
  "     where table_schema = 'public' " +
  "    and table_name = 'mytable'", function(err, res)  {
      if (parseInt(res.rows[0].c) > 0 ) {
        client.query("select * from PUBLIC.mytable", function(err1, res1)  {
          if (res1.rows.length == 0 ) {
            console.log('table is empty');
            } else{
          console.log(res1.rows[0].some_field);
          }
        });
      }
});

如果mytable中的数据存在,您希望从中获取什么?@VaoTsun:当我单击我的程序时,例如“检查我”字段,它会显示mytable中的所有字段。当它已满时会发生这种情况。当该表为空时,我会收到一个错误,因为它是空的。因此,我希望避免这种情况。因此,您希望检查该表是否存在,然后检查是否存在表中有一些数据,如果有一些数据,您想选择它吗?。全部集中在一个过程中-对吗?@VaoTsun:是的,就是这样!然后更新您的问题,以便其他人了解您的需要:当表为空,我第一次访问时,它只是挂起,没有错误。当表满时,它工作正常!您错过了一个};对于外部查询:由于某些原因,它不会返回空表。它在没有数据的情况下运行,并显示您在这里看到的内容:console.log'no data',res.rows;如果我在第二个查询中按您的方式运行console.log,它仍然挂起而不显示任何内容。如果我将console.logno数据放入第一个查询,它将不返回任何数据[anonymous{c:'0'}是第一个查询中打印文档的结果。