任何逻辑错误:不是唯一的数据库值

Posted

技术标签:

【中文标题】任何逻辑错误:不是唯一的数据库值【英文标题】:anylogic error: Not unqiue database value 【发布时间】:2017-09-07 11:00:02 【问题描述】:

在 Anylogic 离散事件模型中,我试图根据我创建的数据库表设置到达率以及每次到达的代理数量。该表包含一列表示材料进入的日期和时间,然后是分配给每种材料的唯一代码和订单号。每种材料只有一个代码,但每天都会分配几个订单号。此外,每天同时收到多种材料。当我设置 Source 以从表中读取数据时,我在运行时收到错误消息: 创建模型时出错: 根: 不是唯一的数据库值!

我在 Anylogic 上找不到任何解决此错误的帮助。

【问题讨论】:

【参考方案1】:

我向 Any Logic 支持团队提出了同样的问题,得到了以下答案。

参数“到达日期”需要指定包含到达日期的表格列。然后,“源”块将逐行读取具有列的表,并在当前行的日期生成一个代理。 当您指定具有特定条件的数据库引用时,“源”块将生成一个匹配该条件的代理。您会收到错误,因为表中匹配条件的行不止一行。 为了实现您的任务,您可以根据您的表创建一个视图,该视图的定义类似于数据库引用:

SELECT \all the columns you need for your query

tabelle1.all_id, 
tabelle1.date, 
tabelle1.maschine 

FROM \the reference table 

tabelle1 

WHERE \with the WHERE you can specify which rows should generate an agent 

tabelle1.maschine = 'M31'

之后,只需告诉“来源”块根据视图中的到达日期生成代理。

希望这对您也有帮助。

【讨论】:

以上是关于任何逻辑错误:不是唯一的数据库值的主要内容,如果未能解决你的问题,请参考以下文章

如何检查任何多个“错误”布尔值是不是为真?

项目中遇到逻辑删除问题

JSON数据存储对象唯一和手势冲突

在哪里放置需要从数据库中获取数据的域逻辑

发生数据库错误错误号:1066 不是唯一的表/别名:[重复]

MySQL索引