0

我创建了一个页面来插入和修改现有 mysql-table 的数据。但是根据我的要求和表的结构,我必须修改用于插入数据的 sql。

因为我对 rapidclipse 和 java 完全陌生,所以我需要一些提示/示例如何以及在何处修改它。查看所有快速剪辑视频都没有给出正确的提示。

我想将三个字段插入到 mysql 表
中我必须手动编辑的字段之一。
第二个字段始终包含相同的值。
第三个字段包含一个计算值,我必须在运行时从数据库中获取该值。

作为 sql,我将使用以下代码:

INSERT INTO OKM_DB_METADATA_VALUE (DMV_TABLE, DMV_COL00, DMV_COL01) 
VALUES ('T_supplier', (select * from (select max(cast(DMV_COL00 as
Integer)) +1 from OKM_DB_METADATA_VALUE as t2 where DMV_TABLE =
'T_supplier') as t3 ) , 'new suppliername');

字段 DMV_Table 的值将始终为“T_supplier”
字段 DMV_COL00 的值始终是 col +1 中的最高值
字段 DMV_COL01 的值将始终手动输入
(我无法/我不想修改/使用表格形式,-design 和 trigger,因为它是 OpenKM 的原始表格)

先感谢您!
最好的问候
奥帕海因茨

4

2 回答 2

0

解决问题的第一步

在保存功能的 buttonClick 事件中,我将 DMV_Table 字段的值设置为:

... this.txtDmvTable.setValue("T_supplier"); 

第二步;我在数据库中创建了一个仅提供预期值的视图:

 `CREATE
OR REPLACE
VIEW `okmdb`.`V_suppliers_newID` AS
select
    1 as "id",
    max(cast(DMV_COL00 as Integer)) +1 as "newSupId" 
from OKM_DB_METADATA_VALUE 
where DMV_TABLE = 'T_supplier'; `

之后,我在 rapidclipse 中创建了一个实体,从视图中读取值并将其分配给另一个字段 DMV_COL00。

这就是全部。

于 2019-05-03T14:36:46.173 回答
0

只是对sql代码的建议..您的代码可以重构为更像SQL的代码..您可以避免内部子查询..并使用普通的插入选择

  INSERT INTO OKM_DB_METADATA_VALUE (DMV_TABLE, DMV_COL00, DMV_COL01) 
  select 'T_supplier', max(cast(DMV_COL00 asInteger)) +1 , 'new suppliername'
  from OKM_DB_METADATA_VALUE 
  where DMV_TABLE ='T_supplier'
于 2019-04-26T15:12:21.293 回答