问题描述
我用列创建了一个数据库:
CREATE FUNCTION schname.funcname(_userid integer)
RETURNS INT
LANGUAGE 'plpgsql'
AS
$BODY$
DECLARE vartab TEXT;
DECLARE count_var INTEGER;
BEGIN
SELECT tableName FROM table1
WHERE userID = $1 INTO vartab;
EXECUTE FORMAT('UPDATE otherschema.%I SET some_col = some_val WHERE some_cond',vartab);
GET DIAGNOSTICS count_var = ROW_COUNT;
RETURN count_var;
END;
$BODY$;
然后,程序应该在添加新的friendCode之前做一些事情:
- 如果friendCode已存在于数据库中,并且被监视,则它什么也不做。
- 如果friendCode已存在于数据库中,但是watched的值为0,则应更新pastTime。
- 如果friendCode不在数据库中,则应将其添加到数据库中。
我已经设法做到了一些,但是有一些问题。第一个在2.函数中。我不知道如何获取行ID来编辑postTime。第二个问题是3函数。仅当friendCode在数据库中已经2次时才有效。因此,如果程序使用数据库中的friendCode运行3次以上,则它只会注意到它并执行1或2函数。
MySQL数据库的样子:
第1类:
id,postTime,watched,friendCode
第二堂课
public static int checkRow(String query) {
int ret = 1;
try (Connection con = DriverManager.getConnection(url,user,password)) {
Statement stmt = con.createStatement();
ResultSet rs = stmt.executeQuery(query);
if (rs.next() && rs.getInt("watched") != 0) {
System.out.println("1");
ret = 1;
} else if (rs.next() && rs.getInt("watched") == 0) {
System.out.println("2");
ret = 2;
} else {
System.out.println("3");
ret = 3;
}
rs.close();
stmt.close();
} catch (SQLException e) {
System.out.println(e.getMessage());
}
return ret;
}
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)