5

我是 Outsystems 和 SQL 的新手。我正在尝试创建实体所在的总线应用程序 在此处输入图像描述

当我尝试创建一个名称相同但路线和巴士 ID 不同的新骑手时。我得到 Cannot insert duplicate key row in object 'dbo.OSUSR_6SL_RIDER' with unique index 'OSIDX_OSUSR_6SL_RIDER_4NAME'. The duplicate key value is (ABC). The statement has been terminated. 当我检查数据库表'dbo.OSUSR_6SL_RIDER'中的名称字段时,它没有设置唯一标识符。任何人都可以帮我解决这个问题。

4

3 回答 3

6

打开Indexes桌子下的树。您将找到一个名为 的索引'OSIDX_OSUSR_6SL_RIDER_4NAME'

编写该索引的脚本,您将看到它是您尝试在其中创建重复值的“名称”列上的唯一索引。

您必须更改该索引以包含路线和巴士 ID,或者您必须放弃创建具有重复名称的新行的尝试。

于 2015-12-17T19:14:26.263 回答
0

看起来您正在创建一个完全相同的副本,即具有相同 Id 值的记录。它引用的索引名称似乎是由 db 系统自动生成的。因此,它不一定是指名称字段。查看您的索引并查看它们包含的字段。如果 OSIDX_OSUSR_6SL_RIDER_4NAME 包含 Id 字段,我不会感到惊讶。

于 2015-12-17T18:54:08.020 回答
0

如果您使用的是 OutSystems 平台,则所有数据库管理都是在您从 Service Studio 发布时完成/生成的,因此不建议直接操作数据库:您为​​自己设置了很多维护痛苦和之间的不一致不同的环境。

双击实体Rider,它将打开实体的编辑窗口。在索引选项卡中,您可以定义和更改索引(唯一或非唯一),该工具将(重新)生成所有需要的 SQL 命令。

请参阅OutSystems 平台 9 帮助 | 索引选项卡了解更多详情:

在此处输入图像描述

于 2015-12-18T03:06:12.447 回答