Dalam mysql, sama ada commit diperlukan bergantung pada enjin penyimpanan: 1. Jika ia adalah enjin storan yang tidak menyokong transaksi, seperti myisam, anda tidak perlu menggunakan commit; enjin storan yang menyokong transaksi, seperti innodb, maka Anda perlu tahu sama ada transaksi itu dilakukan secara automatik, jadi anda perlu menggunakan komit.
Persekitaran pengendalian tutorial ini: sistem Windows 10, versi mysql8.0.22, komputer Dell G3.
Sama ada mysql memerlukan commit semasa melakukan penambahan, pemadaman dan pengubahsuaian bergantung pada enjin storan anda.
Jika ia adalah enjin yang tidak menyokong transaksi, seperti myisam, ia tidak akan sah sama ada ia dilakukan atau tidak.
Jika ia adalah enjin yang menyokong transaksi, seperti innodb, anda perlu tahu sama ada perkara itu menyokong penyerahan transaksi automatik (iaitu komit)
Lihat pada anda sendiri Anda boleh menggunakan
mysql> show variables like '%autocommit%';
untuk menyemak sama ada pangkalan data dikomit secara automatik Jika ia MATI, ia tidak akan dilakukan secara automatik dan memerlukan operasi komit manual (baris arahan boleh terus gunakan arahan "komit;"), jika tidak, ia akan dilakukan secara automatik.
Pengetahuan lanjutan:
Terdapat tiga jenis data yang diserahkan: penyerahan eksplisit, penyerahan tersirat dan penyerahan automatik.
Tiga jenis ini diterangkan di bawah.
Penyerahan eksplisit
Penyerahan yang dilengkapkan terus menggunakan arahan COMMIT ialah penyerahan eksplisit.
Penyerahan tersirat
Serahan yang dilengkapkan secara tidak langsung menggunakan arahan SQL ialah penyerahan tersirat. Arahan ini ialah:
UBAH, AUDIT, KOMEN, SAMBUNG, CIPTA, PUTUSKAN, GUGUH, KELUAR, GERAN, NOAUDIT, BERHENTI, BATALKAN, NAMA SEMULA.
Penyerahan automatik
Jika AUTOCOMMIT ditetapkan kepada HIDUP, selepas memasukkan, mengubah suai dan memadam kenyataan dilaksanakan, sistem
akan membuat komitmen secara automatik, yang merupakan komitmen automatik. Formatnya ialah: SQL>SET AUTOCOMMIT ON;
COMMIT / ROLLBACK. COMMIT/ROLLBACK digunakan selepas melaksanakan pernyataan DML (INSERT/DELETE/UPDATE/SELECT). Selepas penyata DML dilaksanakan, data yang diproses akan diletakkan dalam segmen rollback (kecuali pernyataan SELECT), menunggu pengguna untuk melakukan (COMMIT) atau rollback (ROLLBACK) Apabila pengguna melaksanakan COMMIT/ROLLBACK, ia akan diletakkan dalam segmen rollback Data dalam segmen akan dipadamkan.
(Selepas pernyataan SELECT dilaksanakan, data disimpan dalam kumpulan kongsi. Apabila menyediakan data yang sama kepada orang lain untuk ditanya, ia diekstrak terus daripada kumpulan kongsi tanpa perlu pergi ke pangkalan data untuk mengekstrak ia, yang meningkatkan kelajuan pertanyaan data.)
Semua penyata DML mesti diserahkan secara eksplisit, iaitu, COMMIT mesti dilaksanakan selepas penyataan DML dilaksanakan. Lain-lain, seperti pernyataan DDL, diserahkan secara tersirat. Dalam erti kata lain, selepas menjalankan penyataan bukan DML tersebut, pangkalan data telah membuat komit tersirat, seperti CREATE TABLE Selepas menjalankan skrip, jadual telah dibuat dan anda tidak perlu lagi membuat komit eksplisit.
Pembelajaran yang disyorkan: tutorial video mysql
Atas ialah kandungan terperinci Adakah mysql perlu komit?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!