Rumah  >  Artikel  >  pangkalan data  >  Adakah operasi pengubahsuaian data dihantar secara automatik dalam MySQL?

Adakah operasi pengubahsuaian data dihantar secara automatik dalam MySQL?

WBOY
WBOYasal
2024-03-15 14:03:04330semak imbas

Adakah operasi pengubahsuaian data dihantar secara automatik dalam MySQL?

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 MULAKAN URUS NIAGA untuk memulakan urus niaga dan tidak melakukan buat sementara waktu selepas operasi mengemas kini data . 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

Kemudian kami cuba menanyakan data Pada masa ini, pengubahsuaian belum diserahkan, jadi pertanyaan masih akan mengembalikan data sebelumnya:

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 perintah ROLLBACK: 🎜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!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel sebelumnya:Apakah versi MySQL yang ada?Artikel seterusnya:Apakah versi MySQL yang ada?