【发布时间】:2019-12-30 04:00:07
【问题描述】:
我有下表:
id: BIGINT
value: DOUBLE
test: VARCHAR
与价值观:
id: 1
value: 0.99
test: ''
在我的 postgresql shell 中运行以下 SQL 注释,我得到的结果与在 Liquibase <sql> 标记中运行它不同:
UPDATE myTable SET test=concat('value=', value);
如果我直接在我的 SQL shell 中运行它,我的测试值为 value=0.99 但是如果我在 Liquibase <sql> 标记中运行相同的 SQL 命令,我会得到 value=0.98999999999999999
显然这是一个浮点错误,但如果我使用<sql>,为什么 Liquibase 会给出不同的结果?结果不应该相同吗?
【问题讨论】:
-
和 之间的 Liquibase 的 SQL 命令到底是什么;还有在你的 shell 中运行的 SQL 命令到底是什么?您可以在不使用任何变量(例如value)的情况下同时进行这两项操作并进行比较吗? -
我在两者中运行完全相同的命令:UPDATE myTable SET test=concat('value=', value)
标签: java sql postgresql liquibase