Mysql
 sql >> Baza danych >  >> RDS >> Mysql

Zapytanie wstawiające jOOQ ze zwracaniem wygenerowanych kluczy

Używana składnia służy do wstawiania wielu rekordów. Spowoduje to wstawienie 4 rekordów, każdy z jednym polem.

.values(node.getParentid())
.values(node.getName())
.values(node.getRem())
.values(node.getUipos())

Ale zadeklarowałeś 4 pola, więc to nie zadziała:

create.insertInto(Tblcategory.TBLCATEGORY, 
  Tblcategory.PARENT_ID, Tblcategory.NAME, Tblcategory.REM, Tblcategory.UIPOS)

To, co prawdopodobnie chcesz zrobić, to:

Result<TblcategoryRecord> result = create
  .insertInto(Tblcategory.TBLCATEGORY, 
    Tblcategory.PARENT_ID, Tblcategory.NAME, Tblcategory.REM, Tblcategory.UIPOS)
  .values(node.getParentid(), node.getName(), node.getRem(), node.getUipos())
  .returning(Tblcategory.CATEGORY_ID)
  .fetch();

Lub alternatywnie:

Result<TblcategoryRecord> result = create
  .insertInto(Tblcategory.TBLCATEGORY) 
  .set(Tblcategory.PARENT_ID, node.getParentid())
  .set(Tblcategory.NAME, node.getName())
  .set(Tblcategory.REM, node.getRem())
  .set(Tblcategory.UIPOS, node.getUipos())
  .returning(Tblcategory.CATEGORY_ID)
  .fetch();

Prawdopodobnie jesteś jeszcze lepszy, używając

TblcategoryRecord result =
  // [...]
  .fetchOne();

Aby uzyskać więcej informacji, zapoznaj się z instrukcją:

http://www.jooq. org/doc/2.6/manual/sql-building/sql-statements/insert-statement/

Lub Javadoc do tworzenia INSERT oświadczenia zwracające wartości:

http://www.jooq.org/javadoc/latest/org /jooq/InsertReturningStep.html



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Jak dodać sterownik JDBC do potoku Jenkins?

  2. pobierz tablicę wartości kolumn w codeigniter

  3. Optimizer_search_depth w Google Cloud SQL

  4. Instalacja Magento skarży się na brak InnoDB, gdy jest ona dostępna

  5. Jak wybrać ostatnie 3 minuty rekordów z MySQL za pomocą PHP