ユーザー定義変数を使用して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)
-
2つのテーブルを比較し、MySQLで欠落しているIDを返しますか?
2つのテーブルを比較して、欠落しているIDを返すには、サブクエリを使用する必要があります。構文は次のとおりです- SELECT yourFirstTableName.yourIdColumnName FROM yourFirstTableName WHERE NOT IN(SELECT yourSecondTableName.yourIdColumnName FROM youSecondTableName); 上記の構文を理解するために、サンプルフィールドを含むテーブルを作成してから、レコードを挿入します。最初のテーブルを作成するためのクエリ- First_Table mysql>
-
MySQLを使用したJavaでのselectクエリにプリペアドステートメントを使用するにはどうすればよいですか?
これにはexecuteQuery()を使用する必要があります。構文は次のとおりです- yourPreparedStatementObject=yourConnectionObject.prepareStatement(yourQueryName); yourresultSetObject=yourPreparedStatementObject.executeQuery(); データベースの「サンプル」にテーブルを作成します。テーブルを作成するためのクエリは次のとおりです- mysql> create table JavaPreparedStatement -> ( -