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

ユーザー定義変数を使用して2つのテーブルに異なる自動インクリメントIDを設定するにはどうすればよいですか?


これには、LAST_INSERT_ID()を使用できます。まず、テーブルを作成しましょう。ここでは、auto_incrementidをStudentId列に設定しました-

mysql> create table DemoTable1 (StudentId int NOT NULL AUTO_INCREMENT PRIMARY KEY);
Query OK, 0 rows affected (0.58 sec)

挿入コマンド-

を使用して、テーブルにいくつかのレコードを挿入します
mysql> insert into DemoTable1 values(null);
Query OK, 1 row affected (0.18 sec)

selectステートメントを使用してテーブルのすべてのレコードを表示する-

mysql> select *from DemoTable1;

これにより、次の出力が生成されます-

+-----------+
| StudentId |
+-----------+
|         1 |
+-----------+
1 row in set (0.00 sec)

以下は、最後の挿入IDを取得するためのクエリです。ユーザー定義変数に設定しました-

mysql> set @studentId=last_insert_id();
Query OK, 0 rows affected (0.00 sec)

以下は、2番目のテーブルを作成するためのクエリです-

mysql> create table DemoTable2 (Id int);
Query OK, 0 rows affected (0.61 sec)

以下は、2つのテーブルに異なる自動インクリメントIDを設定するためのクエリです-

mysql> insert into DemoTable2 values(@studentId+1);
Query OK, 1 row affected (0.13 sec)

selectステートメントを使用してテーブルのすべてのレコードを表示します-

mysql> select *from DemoTable2;

これにより、次の出力が生成されます-

+------+
| Id   |
+------+
|    2 |
+------+
1 row in set (0.00 sec)

  1. 2つのテーブルを比較し、MySQLで欠落しているIDを返しますか?

    2つのテーブルを比較して、欠落しているIDを返すには、サブクエリを使用する必要があります。構文は次のとおりです- SELECT yourFirstTableName.yourIdColumnName FROM yourFirstTableName WHERE NOT IN(SELECT yourSecondTableName.yourIdColumnName FROM youSecondTableName); 上記の構文を理解するために、サンプルフィールドを含むテーブルを作成してから、レコードを挿入します。最初のテーブルを作成するためのクエリ- First_Table mysql>

  2. MySQLを使用したJavaでのselectクエリにプリペアドステートメントを使用するにはどうすればよいですか?

    これにはexecuteQuery()を使用する必要があります。構文は次のとおりです- yourPreparedStatementObject=yourConnectionObject.prepareStatement(yourQueryName); yourresultSetObject=yourPreparedStatementObject.executeQuery(); データベースの「サンプル」にテーブルを作成します。テーブルを作成するためのクエリは次のとおりです- mysql> create table JavaPreparedStatement -> ( -