Как изменить функцию сохранения группы полей?

Я создал страницу для вставки и изменения данных существующей таблицы MySQL. Но исходя из моих требований и структуры таблицы, я должен изменить SQL для вставки данных.

Поскольку я полностью новичок в quickclipse и 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 всегда самое высокое значение в столбце +1
Значение для поля DMV_COL01 будет всегда вводиться вручную
(Я не могу / не хочу изменять / использовать форму таблицы, -design и trigger, потому что это оригинальная таблица OpenKM)

Заранее спасибо!
с уважением
OpaHeinz

2 ответа

Просто предложение для кода 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'

Первый шаг к решению

В событии 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'; `

После этого я создал сущность в quickclipse, считал значение из представления и присвоил его другому полю DMV_COL00.

Это было все.

Другие вопросы по тегам