Operasi pengubahsuaian data dalam MySQL dihantar secara automatik secara lalai, iaitu setiap kali operasi pengubahsuaian data KEMASKINI, INSERT, PADAM dll dilakukan, ia akan berkuat kuasa serta-merta dan diserahkan kepada pangkalan data. Kelebihan ini adalah untuk memastikan ketekalan dan ketahanan data, tetapi kadangkala ia turut membawa risiko tertentu Contohnya, apabila melakukan beberapa operasi pengubahsuaian, anda mungkin mahu menyerahkan semua operasi sekaligus dan bukannya menyerahkan setiap operasi dengan segera.
MySQL menyediakan konsep urus niaga, yang boleh mengawal penyerahan operasi pengubahsuaian data secara manual, dengan itu membolehkan berbilang operasi diserahkan pada satu masa atau ditarik balik.
Di bawah saya akan menggunakan contoh kod khusus untuk menunjukkan ciri penyerahan automatik operasi pengubahsuaian data dalam MySQL dan cara mengawal penyerahan secara manual.
Mula-mula, kami mencipta jadual bernama "test_table" dengan struktur berikut:
CREATE TABLE test_table ( id INT PRIMARY KEY, name VARCHAR(50) );
Seterusnya, kami memasukkan beberapa data ujian:
INSERT INTO test_table (id, name) VALUES (1, 'Alice'); INSERT INTO test_table (id, name) VALUES (2, 'Bob'); INSERT INTO test_table (id, name) VALUES (3, 'Charlie');
Sekarang kami cuba melaksanakan kenyataan KEMASKINI yang mudah untuk mengubah suai data dan melihat Kesan penyerahan automatik :
UPDATE test_table SET name = 'David' WHERE id = 1; SELECT * FROM test_table;
Selepas melaksanakan pernyataan di atas, anda dapat melihat bahawa data telah berjaya diubah suai, menunjukkan bahawa operasi pengubahsuaian telah diserahkan secara automatik.
Seterusnya, kami mengawal penyerahan operasi pengubahsuaian data secara manual dengan menyediakan urus niaga:
START TRANSACTION; UPDATE test_table SET name = 'Eve' WHERE id = 2;
Di sini, kami menggunakan START TRANSACTION
来开始一个事务,并在更新数据的操作后暂时不提交。
接着我们尝试查询数据,此时修改还未提交,所以查询仍然会返回之前的数据:
SELECT * FROM test_table;
接着我们手动提交这个事务:
COMMIT;
执行完以上语句后,再次查询数据,发现数据已经成功被修改了。
另外,如果想要撤销之前的修改操作并回滚事务,可以使用ROLLBACK
命令:
START TRANSACTION; UPDATE test_table SET name = 'Grace' WHERE id = 3; SELECT * FROM test_table; ROLLBACK; SELECT * FROM test_table;
在上面的示例中,执行ROLLBACK
rrreee
Kemudian kami menyerahkan transaksi secara manual:🎜rrreee🎜Selepas melaksanakan pernyataan di atas, kami menanyakan data sekali lagi dan mendapati data tersebut telah Berjaya diubah suai. 🎜🎜Selain itu, jika anda ingin membatalkan operasi pengubahsuaian sebelumnya dan melancarkan transaksi, anda boleh menggunakan perintahROLLBACK
: 🎜rrreee🎜Dalam contoh di atas, data ditemui selepas melaksanakan ROLLBACK
Ia tidak diubah suai, menunjukkan bahawa transaksi telah berjaya ditarik balik. 🎜🎜Melalui contoh di atas, kita dapat melihat bahawa operasi pengubahsuaian data dilakukan secara lalai secara lalai dalam MySQL, tetapi operasi komit atau rollback boleh dikawal secara manual melalui transaksi untuk mencapai kaedah operasi data yang lebih fleksibel. 🎜Atas ialah kandungan terperinci Adakah operasi pengubahsuaian data dihantar secara automatik dalam MySQL?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!