📜  我们是否需要指定提交来保存mysql中的更改(1)

📅  最后修改于: 2023-12-03 15:39:38.545000             🧑  作者: Mango

我们是否需要指定提交来保存 MySQL 中的更改

简介

在使用 MySQL 数据库时,我们需要将更改保存到数据库中。但是,我们往往会在进行更改操作后遇到一个问题:当执行一次更改操作时,MySQL 是否会自动保存更改到数据库中?是否需要我们手动提交更改?

自动提交

默认情况下,MySQL 会自动提交更改。这意味着,当我们执行一条 INSERT、UPDATE 或 DELETE 等更改数据的 SQL 语句时,MySQL 会立即将更改保存到数据库中。

例如,我们执行以下 SQL 语句:

INSERT INTO students(name,age) VALUES('Tom',18);

MySQL 会立即将这条 SQL 语句执行,并将更改保存到数据库中。我们不需要手动提交更改。

手动提交

虽然 MySQL 默认会自动提交更改,但是我们也可以手动提交更改,即将多条 SQL 语句放在事务中,并手动将事务提交到数据库。这种方式可以保证多条 SQL 语句的原子性,避免出现一些意外情况,比如服务器崩溃导致的数据丢失。

例如,我们执行以下 SQL 语句:

START TRANSACTION;
INSERT INTO students(name,age) VALUES('Tom',18);
UPDATE students SET age=19 WHERE name='Tom';
COMMIT;

以上 SQL 语句将开启一个事务,插入一条学生记录,并将该学生的年龄从 18 修改为 19。最后手动提交事务。这样,如果在进行这些操作时出现了异常,会自动回滚事务,保证数据的完整性。

总结

MySQL 默认会自动提交更改,但是在需要保证多条 SQL 语句的原子性时,我们可以手动开启事务,并手动提交事务。这样可以保证数据的完整性,避免出现一些意外情况。