临时表已存在

时间:2018-05-03 08:22:39

标签: java sql database postgresql temp-tables

我有一个方法,我创建一个临时表(我之前删除它),

 public void CreateTempTable() {

        HibernatePersistenceService persistenceService = (HibernatePersistenceService) getPersistenceService();

        String requete="DROP TABLE IF EXISTS mytable";
persistenceService.getSession().createSQLQuery(requete)
                .executeUpdate();

        String requete2 = "CREATE TEMPORARY TABLE mytable AS SELECT t_lot.etabl_cdn ,count(lot_cdn) as lots_vendus"
                + " FROM t_lot group by t_lot.etabl_cdn";

        persistenceService.getSession().createSQLQuery(requete2)
                .executeUpdate();
    }

我多次调用此方法它工作正常,但有时我在下降告诉我mytable已经存在后有错误。我不明白为什么因为我在再次创建之前删除它。它就像丢弃不完成所以创建块。 对此问题的任何帮助?感谢。

1 个答案:

答案 0 :(得分:0)

看起来脚本的多个实例并行运行,这会给您带来错误。

要解决此问题,您可以创建一个脚本来检查代码是否已在运行。如果它没有运行,请执行您的代码。可以使用ps -ef命令正常进行检查。