MySQL
 Computer >> コンピューター >  >> プログラミング >> MySQL

現在のトランザクションで行われた変更をMySQLデータベースから完全に削除するにはどうすればよいですか?


ROLLBACKコマンドを使用して、現在のトランザクションで行われた変更をMySQLデータベースから永続的に削除できます。いくつかのDMLステートメントを実行し、それがいくつかのデータオブジェクトを更新すると、ROLLBACKコマンドはこれらの更新をデータベースから完全に削除するとします。

テーブル「marks」に次のデータがあり、トランザクションとROLLBACKコマンドを次のように適用したとします-

mysql> SELECT * FROM Marks;
+------+---------+---------+-------+
| Id   | Name    | Subject | Marks |
+------+---------+---------+-------+
|  1   | Aarav   | Maths   |  50   |
|  2   | Harshit | Maths   |  55   |
+------+---------+---------+-------+
2 rows in set (0.00 sec)

mysql> START TRANSACTION;
Query OK, 0 rows affected (0.00 sec)

mysql> INSERT INTO Marks Values(3, 'Rahul','History',40);
Query OK, 1 row affected (0.00 sec)

mysql> INSERT INTO Marks Values(4, 'Yashraj','English',48);
Query OK, 1 row affected (0.00 sec)

mysql> ROLLBACK;
Query OK, 0 rows affected (0.04 sec)

この例では、ROLLBACKステートメントはトランザクションを明示的に終了し、変更はロールバックされます。つまり、データベースから完全に削除されます。

mysql> SELECT * FROM Marks;
+------+---------+---------+-------+
| Id   | Name    | Subject | Marks |
+------+---------+---------+-------+
|  1   | Aarav   | Maths   |  50   |
|  2   | Harshit | Maths   |  55   |
+------+---------+---------+-------+
2 rows in set (0.00 sec)

  1. MySQLデータベースの列から一意のレコードをカウントするにはどうすればよいですか?

    このためには、集計関数count(*)を使用して、GROUPBYにカウントしてグループ化します。まずテーブルを作成しましょう- mysql> create table DemoTable (    UserName varchar(100),    UserPostMessage text ); Query OK, 0 rows affected (0.54 sec) 挿入コマンド-を使用して、テーブルにいくつかのレコードを挿入します mysql> insert into DemoTable values('Chris',&

  2. 現在のデータベースの名前を使用してMySQLでデータベースを削除するにはどうすればよいですか?

    現在のデータベースを取得するには、SELECT DATABASE()-を使用できます。 select database(); 以下は構文です- set @anyVariableName = database(); select @anyVariableName; set @anyVariableName2 = concat('drop database ', @yourVariableName); prepare anyVariableName3 from @yourVariableName2; execute yourVariableName3; 現在のデータベースを取得