SQL语句“ CREATE EXTENSION [*] IF NOT EXISTS UUID_OSSP”中的语法错误

时间:2019-09-03 08:17:14

标签: java h2

我正在尝试创建h2 DB模式。这是我的sql

function power(base, exp) {
    if(exp === 0){
        return 1;
    }
    return base * power(base, exp - 1);

}

我得到一个错误

  

由以下原因引起:org.h2.jdbc.JdbcSQLSyntaxErrorException:语法错误   SQL语句“ CREATE EXTENSION [*]如果不存在UUID_OSSP”;预期   “或,强制,视图,别名,序列,用户,触发器,角色,模式,   常量,域,类型,数据类型,聚集,链接,内存,缓存,   本地,全局,温度,临时,表,SYNONYM,主,唯一,哈希,   SPATIAL,INDEX“; SQL语句:如果不存在则创建扩展名   uuid_ossp [42001-199]

2 个答案:

答案 0 :(得分:1)

我通过删除create extension if not exists uuid_ossp;并添加default random_uuid()而不是表中的default uuid_generate_v4()来解决此问题。

答案 1 :(得分:0)

对我来说,当我尝试使用 CREATE EXTENSION IF NOT EXISTS "uuid-ossp";

就像@annswerg 尝试过的那样,它给了我以下错误,

错误:“CREATE EXTENSION IF NOT EXISTS”处或附近的语法错误 第 1 行:如果不存在,则创建扩展“uuid-ossp”;

但是当我运行时它没有任何错误,

创建扩展"uuid-ossp";

如果不存在,

我的 postgresql 版本是 PostgreSQL 10.15 (Ubuntu 10.15-0ubuntu0.18.04.1)

希望对以后可能遇到类似问题的人有所帮助。