我是Outsystems和SQL的新手。我尝试创建实体所在的总线应用程序
当我尝试创建一个具有相同名称和不同Route和总线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'它没有设置唯一标识符。任何人都可以帮助我。
答案 0 :(得分:3)
打开桌子下的Indexes
树。您将找到名为'OSIDX_OSUSR_6SL_RIDER_4NAME'
的索引。
编写索引的脚本,你会发现它是"名称"的唯一索引。您尝试在。中创建重复值的列。
您必须更改该索引以包含路由和总线ID,或者您必须放弃尝试创建具有重复名称的新行。
答案 1 :(得分:0)
看起来您正在创建一个完全相同的副本,即具有相同Id值的记录。它引用的索引名称似乎是由db系统自动生成的。因此,它不一定是指名称字段。查看索引并查看它们包含的字段。如果OSIDX_OSUSR_6SL_RIDER_4NAME包含Id字段,我不会感到惊讶。
答案 2 :(得分:0)
如果您使用的是OutSystems平台,那么当您从Service Studio发布时,所有数据库管理都已完成/生成,因此不建议直接操作数据库:您需要为自己设置很多维护工作和不同环境之间的不一致。
双击实体Rider
,它将打开您实体的编辑窗口。在索引选项卡中,您可以定义和更改索引(唯一的或不是唯一的),工具将(重新)生成所有必需的SQL命令。
有关详细信息,请参阅OutSystems Platform 9 Help | Indexes Tab: