Vertica插入被忽略

2024-10-03 06:32:08 发布

您现在位置:Python中文网/ 问答频道 /正文

我试图在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'。在


Tags: dbbinresponseallselectrowinsertlc
2条回答

默认情况下,“自动提交”处于禁用状态:

$ vsql -c "\set"
VERSION = 'vsql'
AUTOCOMMIT = 'off'
...

或者提交更改或定义AUTOCOMMT=ON。 在我看来,第二种选择更好:

^{pr2}$

或者将commit放在INSERT语句之后:

$ vsql  -c "INSER INTO whatever VALUES (...); commit;"

找到它后,我需要在一批INSERT命令之后添加COMMIT。 见https://my.vertica.com/docs/7.1.x/HTML/index.htm#Authoring/ConnectingToHPVertica/vsql/AUTOCOMMIT.htm。在

仅在需要时使用一个COMMIT似乎比在每次插入后触发提交的AUTOCOMMIT更好。在

相关问题 更多 >