提问人:Sybuser 提问时间:7/18/2017 最后编辑:Adam LeszczyńskiSybuser 更新时间:7/18/2017 访问量:325
Sybase ASE 15.5:成功插入不起作用
Sybase ASE 15.5 : a successful insert which has no effect
问:
我正在尝试将一行插入到一个相当大的表(4 亿行)中。该表有 3 列,列 (1,2) 和列 (2,1) 以及列 3 上的非聚集索引。没有外键,没有触发器。(integer, varchar(128),varchar(255)), primary key
clustered index
nonclustered index
当我这样做时:
insert into mytable values (0,'test_name','test_val')
它成功执行,但没有效果,没有插入任何内容,我可以根据需要成功多次重新执行它,而它应该说“重复密钥”。
可能是什么问题?
注意:noexec 已关闭,手动提交不会更改任何内容。
答:
1赞
Adam Leszczyński
7/18/2017
#1
您可能可以选择其中一个索引。检查过程的结果以查看用于索引的所有选项。ignore_dup_key
sp_help
评论
0赞
Sybuser
7/18/2017
或。我会检查的。但是,如果行没有入呢?
0赞
Adam Leszczyński
7/18/2017
这就是此选项的行为。它跳过行并且不插入它们。
0赞
Sybuser
7/19/2017
任何索引上都没有这样的设置。我放弃了这个问题并重新加载了一个新的转储。问题消失了。
0赞
Adam Leszczyński
7/20/2017
如果问题仍然存在,您可以尝试检查@@trancount设置 - 也许您之前以某种方式创建了另一个级别的事务。另一个提示是选择@@rowcound和@@tranchained
0赞
F Karam
7/18/2017
#2
根据文档,如果是罪魁祸首,当它取消插入时,您应该会收到一条错误消息。您需要在问题中提供更多详细信息,例如错误日志信息,如何插入行。等。
以下是文档中关于上一个答案中提到的索引选项的内容:ignore_dup_key
当您开始数据输入时,任何插入重复键的尝试都会被取消,并显示错误消息。
评论
0赞
RobV
7/18/2017
如果ignore_dup_key启动,您不会收到错误,而是收到“忽略重复键”的警告,并且事务继续(在这种情况下只有 1 行,因此已完成)
0赞
RobV
7/18/2017
另一种可能的(虽然有点牵强)的解释是,表上有一个触发器,以某种方式删除了插入的行。
评论