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