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

ユーザーはどのようにして現在のMySQLトランザクションを暗黙的に終了できますか?


以下は、現在のMySQLトランザクションを暗黙的に終了できる方法です-

DDLステートメントを実行することによって

現在のMySQLトランザクションは暗黙的に終了し、CREATEまたはDROPデータベース、Create、ALTERまたはDROPテーブル、または保存されたルーチンなどのDDLステートメントのいずれかを実行することによって変更がコミットされます。これは、MySQLでは、これらのステートメントをロールバックできないためです。

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

mysql> INSERT INTO MARKS Values(3,'gaurav','Comp',69);
Query OK, 1 row affected (0.26 sec)

mysql> Create table student(id int, Name Varchar(10),);
Query OK, 0 rows affected (0.84 sec)

トランザクションの合間にDDLステートメントを実行するため、このトランザクションは暗黙的に終了します。 MySQLはすべての変更を保存し、ロールバックすることはできません。次の結果セットの助けを借りてそれを観察することができます-

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

mysql> select * from marks;
+------+---------+-----------+-------+
| Id | Name | Subject | Marks |
+------+---------+-----------+-------+
| 1 | Aarav | Maths | 50 |
| 1 | Harshit | Maths | 55 |
| 3 | Gaurav | Comp | 69 |
+------+---------+-----------+-------+
3 rows in set (0.00 sec)

クライアントセッションを切断することによって

クライアントセッションを切断すると、現在のセッションが暗黙的に終了します。この場合、変更はロールバックされます。

クライアントセッションを強制終了する

クライアントセッションを強制終了すると、現在のセッションも暗黙的に終了します。この場合、変更もロールバックされます。

STARTTRANSACTIONコマンドによる

START TRANSACTIONコマンドを実行すると、現在のトランザクションは暗黙的に終了します。この場合、変更はコミットされます。

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

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

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

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

この例では、START TRANSACTIONステートメントは暗黙的にトランザクションを終了し、変更がコミットされます。

mysql> select * from marks;
+------+---------+-----------+-------+
| Id | Name | Subject | Marks |
+------+---------+-----------+-------+
| 1 | Aarav | Maths | 50 |
| 1 | Harshit | Maths | 55 |
| 3 | Gaurav | Comp | 69 |
| 4 | Rahul | History | 40 |
| 5 | Yashraj | English | 48 |
+------+---------+-----------+-------+
5 rows in set (0.00 sec)

  1. MySQLルートユーザーの完全な権限を復元するにはどうすればよいですか?

    UPDATEコマンドを使用して、MySQLrootユーザーの完全な権限を復元できます。 まず、 mysqldを停止する必要があります -skip-grant-tablesで再起動します オプション。その後、 mysqlのみを使用してmysqldサーバーに接続します (つまり、-pオプションはなく、ユーザー名は必要ない場合があります)。 mysqlクライアントで以下のコマンドを発行して、完全な権限を持つMySQLrootユーザーを復元します。 UPDATE mysql.user SET Grant_priv = Y, Super_priv = Y WHERE User = root; Qu

  2. MySQLに別のユーザーとしてログインする方法は?

    MySQLに別のユーザーとしてログインする場合は、「mysql-u-pcommand」を使用する必要があります。別のユーザーとしてログインするための構文は次のとおりです。 >mysql -u yourUsername -p After pressing enter key Enter password − 上記の構文を理解するために、MySQLでユーザーを作成しましょう。構文は次のとおりです- CREATE USER 'yourUserName'@'localhost' IDENTIFIED BY 'yourPassword';