cari

Rumah  >  Soal Jawab  >  teks badan

java - pencetus untuk mengemas kini dua jadual pada masa yang sama

Menggunakan mysql, pengurusan buku, masalahnya melibatkan dua jadual, buku dan pemberi pinjaman

Inilah soalannya:

Buat pencetus untuk merealisasikan kenaikan automatik buku yang dipinjam/penurunan buku yang dipulangkan, tetapi pencetus yang saya tulis tidak dapat merealisasikan fungsi ini, dan jumlah akhir tidak berubah (beberapa jumlah dalam jadual telah saya masukkan secara manual)

Apabila buku dipinjam dan atribut islend dikemas kini, jumlah buku yang dipinjam dikemas kini dalam jadual pemberi pinjaman pada masa yang sama
Selepas atribut islend dikemas kini, ia menyimpan id peminjam, id dalam pemberi pinjaman adalah. kunci utama, dan pulau dalam jadual buku ialah kunci asing Sambungan Kedua-dua jadual ini.

Dua struktur jadual pangkalan data diberikan di bawah Pencetus yang sedang ditulis adalah seperti berikut:

CREATE TRIGGER returnBook
AFTER UPDATE ON books
FOR EACH ROW
BEGIN
UPDATE lender
SET amount = lender.amount - 1
WHERE id = new.isLend;
END

Struktur jadual render adalah seperti berikut:

Struktur meja buku adalah seperti berikut:

Pernyataan ujian
String sql = "KEMASKINI buku SET isLend=?,date=NULL WHERE bookId=? AND isLend=?";

    try {
        ps = conn.prepareStatement(sql);
        ps.setString(1, "1");
        ps.setString(2, String.valueOf(bookId));
        ps.setString(3, String.valueOf(id));
        row = ps.executeUpdate();
    } catch (SQLException e) {
        e.printStackTrace();
    }

Fungsi pinjam/pemulangan boleh dilaksanakan seperti biasa, tetapi fungsi pencetus tidak dilaksanakan

高洛峰高洛峰2749 hari yang lalu909

membalas semua(2)saya akan balas

  • 欧阳克

    欧阳克2017-06-28 09:25:33

    CREATE TRIGGER lendBook
    AFTER UPDATE ON books
    FOR EACH ROW
    BEGIN
    sql语句1;
    sql语句2;
    END

    balas
    0
  • 我想大声告诉你

    我想大声告诉你2017-06-28 09:25:33

    Tidak ada yang salah dengan pencetus itu sendiri, kecuali kita perlu memberi perhatian kepada masalah batal yang disebut oleh @夜 lenyap pada musim panas [lingchenxiaoshixiari]

    Anda boleh menambah jadual seperti log pada pencetus untuk melihat sama ada pencetus telah dilaksanakan

    balas
    0
  • Batalbalas