Oracle
 sql >> Teknologi Basis Data >  >> RDS >> Oracle

Memasukkan Catatan Orang Tua/Anak dalam Transaksi

Sisipan anak akan melihat induk mana pun yang telah dilakukan atau sebelumnya telah disisipkan oleh transaksi yang sama (baik dilakukan atau tidak).

Satu hal yang perlu diverifikasi adalah apakah penyisipan induk secara otomatis menurunkan nilai kunci utama (misalnya melalui pemicu).

Artinya, Anda mengeluarkan pernyataanINSERT ke dalam nilai Kontrak (contract_sequence_number, ...) (10437, ...);

tetapi pemicu menentukan contract_sequence_number baru dari urutan dan benar-benar memberinya kunci utama 10438 (atau apa pun).

Masalah lain mungkin adalah lapisan ORM yang mengacaukan masalah dengan tidak mengeluarkan sisipan dalam urutan yang benar atau menggunakan koneksi yang berbeda di luar kumpulan untuk satu 'transaksi'.

Periksa juga sisipan induk tidak mengembalikan kesalahan.

Coba lakukan contoh transaksi melalui klien konvensional (seperti SQL*Plus) dan lihat apakah itu berhasil. Jika penyisipan anak gagal di sana, cukup kueri kembali entri terbaru dari kontrak (misalnya di mana contract_sequence_number> 10400) dan lihat apakah penyisipan berhasil.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Dikatakan saya tidak memiliki baris yang dipilih?

  2. Pertanyaan pemula SQL oracle

  3. Hibernate Buat Kriteria untuk bergabung dengan tabel yang sama dua kali - mencoba 2 pendekatan dengan 2 kesalahan perbedaan

  4. Pemantauan SQL di Pengembang SQL

  5. Karakter tidak valid dalam string kueri SQL (ORA-00911)