任何逻辑错误:不是唯一的数据库值
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'
之后,只需告诉“来源”块根据视图中的到达日期生成代理。
希望这对您也有帮助。
【讨论】:
以上是关于任何逻辑错误:不是唯一的数据库值的主要内容,如果未能解决你的问题,请参考以下文章