在TEIID中使用默认值会抛出TeiidSQLException



我得到以下错误:

Caused by: org.teiid.jdbc.TeiidSQLException: TEIID31100 Parsing error: Encountered "insert into "form"."form_insertdefault_1" [*]default[*] values"

我需要填写表只有默认值和手动插入工作良好。INSERT INTO form.form_insertdefault_1 DEFAULT VALUES;我使用postgresql数据库和JOOQ (InsertQuery.setDefaultValues())数据库映射。

TEIID不是jOOQ支持的方言,而且我不认为PostgreSQL方言会让你走得很远,因为PostgreSQL的很多东西都是特别的。我会尝试H2或HSQLDB方言,而不是。

无论如何,如果你想在不受支持的方言上运行jOOQ,你必须自己做很多模拟,就像这个一样。除了DEFAULT VALUES(只有极少数RDBMS本地支持),您可以为每个列列出DEFAULT(使用DSL.default_())表达式。无论如何,这就是jOOQ为大多数方言所做的事情。例如

insert into form.form_insertdefault_1 (col1, col2, col3)
values (default, default, default);

甚至,只列出一列:

insert into form.form_insertdefault_1 (col1)
values (default);

或者,如果也不支持DEFAULT,则选择任意一个没有DEFAULT表达式的可空列,并在其定义中插入NULL:

insert into form.form_insertdefault_1 (nullable_non_defaulted_column)
values (null);

相关内容

  • 没有找到相关文章

最新更新