Mysql
 sql >> Teknologi Basis Data >  >> RDS >> Mysql

MULAI TRANSAKSI di dalam BEGIN ... AKHIR konteks atau di luar dan sintaks LOOP

  1. Tidak:pernyataan majemuk hanya dapat digunakan di dalam isi program yang disimpan.

  2. START TRANSACTION; dan COMMIT; adalah pernyataan yang terpisah. Jika Anda ingin badan program yang disimpan berisi banyak pernyataan, pernyataan tersebut perlu dilampirkan dalam semacam blok pernyataan majemuk seperti BEGIN ... END (yang mirip dengan melampirkan blok pernyataan dalam kurung { ... } dalam bahasa seperti C).

    Yang mengatakan, Anda bisa memiliki program tersimpan yang hanya berisi satu pernyataan START TRANSACTION; atau COMMIT; —program semacam itu tidak memerlukan blok pernyataan majemuk dan hanya akan memulai transaksi baru / melakukan transaksi saat ini.

    Di luar program tersimpan, di mana blok pernyataan majemuk tidak diizinkan, Anda dapat mengeluarkan START TRANSACTION; dan COMMIT; pernyataan sebagai &bila diperlukan.

  3. LOOP juga merupakan blok pernyataan majemuk, yang hanya valid dalam prosedur tersimpan. Itu tidak perlu untuk melampirkan LOOP blokir dalam BEGIN ... END blok, meskipun biasanya (karena jika tidak, sulit untuk melakukan inisialisasi loop yang diperlukan).

Dalam kasus Anda, di mana Anda tampaknya ingin memasukkan data ke dalam tabel dari konstruksi perulangan, Anda harus:

  • tentukan program tersimpan tempat Anda menggunakan LOOP;

  • mengulangi loop dalam program eksternal yang mengeksekusi kueri basis data pada setiap iterasi; atau

  • mendefinisikan kembali logika Anda dalam hal set di mana SQL dapat langsung beroperasi.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. MySQL ODBC gagal dalam proyek C# .NET tetapi bukan kode yang dikompilasi runtime

  2. Apakah ada satu kueri yang dapat memperbarui nomor urut di beberapa grup?

  3. Permintaan MySQL untuk Menghapus catatan setelah memilih ..?

  4. Mengapa menghapus init_command set engine=INNODB Django DATABASE_OPTIONS setelah pembuatan tabel?

  5. masalah dengan objek PDO