[解決済み] LAST_INSERT_ID() MySQL
2022-04-24 18:03:20
質問
MySQLに関する質問があるのですが、とても簡単なことだと思います。以下の MySql クエリを実行したときに、table1 から LAST INSERTED ID を返す必要があります。
INSERT INTO table1 (title,userid) VALUES ('test',1);
INSERT INTO table2 (parentid,otherid,userid) VALUES (LAST_INSERT_ID(),4,1);
SELECT LAST_INSERT_ID();
現在のコードは、テーブル1の代わりにテーブル2のLAST INSERT IDを返すだけであることが理解できるように、間にテーブル2に挿入してもテーブル1のIDを取得するにはどうすればよいですか?
解決方法は?
最後の挿入IDを変数に格納することができます。
INSERT INTO table1 (title,userid) VALUES ('test', 1);
SET @last_id_in_table1 = LAST_INSERT_ID();
INSERT INTO table2 (parentid,otherid,userid) VALUES (@last_id_in_table1, 4, 1);
または、table1 から最大 ID を取得する(EDIT: Warning. Rob Starlingのコメントにある、max idを使用する際にレースコンディションによるエラーが発生する可能性があることを参照してください)
INSERT INTO table1 (title,userid) VALUES ('test', 1);
INSERT INTO table2 (parentid,otherid,userid) VALUES (LAST_INSERT_ID(), 4, 1);
SELECT MAX(id) FROM table1;
(注意:コメントでロブ・スターリングが指摘しているように)
関連
-
Mysqlデータベースの手動および定期的なバックアップ手順
-
Mysql がエラーを報告 オペランドには 1 つのカラムが含まれている必要があります。
-
Mysqlの使用中に発生したエラーの一部
-
[解決済み] 1つのSQLクエリで複数のカウントを取得する方法は?
-
[解決済み] どのトランザクションが「テーブルメタデータのロック待ち」状態を引き起こしているかを確認するにはどうすればよいですか?
-
[解決済み] MySQLでdatetimeとtimestampのどちらのデータ型を使用すべきですか?
-
[解決済み] MySQLでコマンドラインを使用してSQLファイルをインポートするにはどうすればよいですか?
-
[解決済み] MySQLのAUTO_INCREMENTをリセットする方法
-
[解決済み] MySQLの複数行を1つのフィールドに連結することはできますか?
-
[解決済み] MySQLのクエリ結果をCSV形式で出力するにはどうすればよいですか?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
MySQLデータ型の詳細
-
[解決済み】MySQL - オペランドは1つのカラムを含む必要があります。
-
[解決済み】DynamoDB : 提供されたキー要素がスキーマと一致しません。
-
[解決済み】文字列からuniqueidentifierに変換する際に変換に失敗する - 2つのGUIDの場合
-
SQLステートメントエラーです。オペランドには 1 つのカラムを含める必要があります [括弧を追加せずに複数のフィールドをクエリする
-
SQL Server のトランザクションは、try キャッチに記述しなければ、中間ステートメントがエラーを報告してもコミットされます。
-
msql クエリでのエラー 'where 節' の不明な列 'yellow fruit'
-
[解決済み] どのトランザクションが「テーブルメタデータのロック待ち」状態を引き起こしているかを確認するにはどうすればよいですか?
-
[解決済み] ユーザー 'root'@'localhost' (パスワード: YES を使用) のアクセス拒否 - 特権がない?
-
[解決済み] PHP/MySQL で行を挿入したら 'id' を取得する