我试图在vertica表中执行一个非常简单的INSERT
,但它没有起作用:我的数据被静默地忽略了。在
$ LC_ALL=C /opt/vertica/bin/vsql db user -w *** -c "SELECT * FROM footable"
lastFetch | ApiPath | response
---------------------------+---------+----------
2015-02-07 18:41:42.26069 | a1 | b1
(1 row)
$ LC_ALL=C /opt/vertica/bin/vsql db user -w *** -c "INSERT INTO footable (lastFetch, ApiPath, response) VALUES ('2015-02-07 18:19:32.435001', 'a2', 'b2')"
OUTPUT
--------
1
(1 row)
$ LC_ALL=C /opt/vertica/bin/vsql db user -w *** -c "SELECT * FROM footable"
lastFetch | ApiPath | response
---------------------------+---------+----------
2015-02-07 18:41:42.26069 | a1 | b1
(1 row)
你知道会出什么问题吗?在
我用vertica-python试过了,结果是一样的。
我也试过用NOW()
代替'2015-02-07 18:19:32.435001'
。在
默认情况下,“自动提交”处于禁用状态:
或者提交更改或定义
^{pr2}$AUTOCOMMT=ON
。 在我看来,第二种选择更好:或者将
commit
放在INSERT语句之后:找到它后,我需要在一批
INSERT
命令之后添加COMMIT
。 见https://my.vertica.com/docs/7.1.x/HTML/index.htm#Authoring/ConnectingToHPVertica/vsql/AUTOCOMMIT.htm。在仅在需要时使用一个
COMMIT
似乎比在每次插入后触发提交的AUTOCOMMIT
更好。在相关问题 更多 >
编程相关推荐