Vertica 插入被忽略
Vertica insert is ignored
我正在尝试对垂直 table 做一个非常简单的 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'
.
默认情况下 AUTOCOMMIT 处于关闭状态:
$ vsql -c "\set"
VERSION = 'vsql'
AUTOCOMMIT = 'off'
...
或提交您的更改或定义 AUTOCOMMT=ON
。
在我看来 - 第二种选择更好:
$ vsql -v AUTOCOMMIT=on -c "\set"
VERSION = 'vsql'
AUTOCOMMIT = 'on'
...
或者直接在 INSERT 语句之后放置 commit
:
$ 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
更好,后者将在每次插入后触发提交。
我正在尝试对垂直 table 做一个非常简单的 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'
.
默认情况下 AUTOCOMMIT 处于关闭状态:
$ vsql -c "\set"
VERSION = 'vsql'
AUTOCOMMIT = 'off'
...
或提交您的更改或定义 AUTOCOMMT=ON
。
在我看来 - 第二种选择更好:
$ vsql -v AUTOCOMMIT=on -c "\set"
VERSION = 'vsql'
AUTOCOMMIT = 'on'
...
或者直接在 INSERT 语句之后放置 commit
:
$ 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
更好,后者将在每次插入后触发提交。