Sybase ASE 15.5:成功插入不起作用

Sybase ASE 15.5 : a successful insert which has no effect

提问人:Sybuser 提问时间:7/18/2017 最后编辑:Adam LeszczyńskiSybuser 更新时间:7/18/2017 访问量:325

问:

我正在尝试将一行插入到一个相当大的表(4 亿行)中。该表有 3 列,列 (1,2) 和列 (2,1) 以及列 3 上的非聚集索引。没有外键,没有触发器。(integer, varchar(128),varchar(255)), primary keyclustered indexnonclustered index

当我这样做时:

insert into mytable values (0,'test_name','test_val')

它成功执行,但没有效果,没有插入任何内容,我可以根据需要成功多次重新执行它,而它应该说“重复密钥”。

可能是什么问题?

注意:noexec 已关闭,手动提交不会更改任何内容。

SQL 数据库 Sybase SAP ASE

评论


答:

1赞 Adam Leszczyński 7/18/2017 #1

您可能可以选择其中一个索引。检查过程的结果以查看用于索引的所有选项。ignore_dup_keysp_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
另一种可能的(虽然有点牵强)的解释是,表上有一个触发器,以某种方式删除了插入的行。