
No.2ベストアンサー
- 回答日時:
「多くの場合、ユーザは、複数のテーブルの
一意の識別子を管理するために ROLLBACK や
LOCK TABLES を使用していた。これは、
AUTO_INCREMENT カラムおよび SQL 関数
LAST_INSERT_ID() または C API 関数
mysql_insert_id() を使用することで、
はるかに効率的に処理することができる。」
とありますので、一応は保証されていると考えて
よいのではないでしょうか。もちろん私が、保証
することはできませんので、自己責任で判断すべき
ことです。
3.23はトランザクション環境にないため、厳密に
整合性を保つためにはid管理は使用者側が任意に
行うべきだというのが個人的な感想です。
お役にたてませんで、申し訳ないです
参考URL:http://dev.mysql.com/doc/refman/4.1/ja/ansi-diff …
この回答への補足
大変助かります。
ありがとうございます。
最終的な手段としては、auto_incrementのIDを生成するためだけのテーブルを作成して、
テーブルA、テーブルBと共にPRIMARYをセットしておけば、
データの整合性が保たれるのではないかと考えていました。
引き続き、もう少し自分でも調べてみようと思います。
ご回答本当にありがとうございます。
No.1
- 回答日時:
もうすこし具体的にお願いします。
last_insert_id()は確かに最終発行された
auto_incrementの値を返す様ですが、セッション
が切れると参照ができないようです。
(所定の措置を入れれば別?)
試した感じ、そのセッションのinsertされたIDが
返されているようなので特に問題ないかとは
思いますが、実際にそれが信用できるかどうかは
微妙です。
select文を発行してidを得る方が間違いないかと
思いますがいかがでしょうか?
この回答への補足
回答ありがとうございます。
auto_incrementを使用しているテーブルには、他にユニークなデータを持つカラムがありません。order by 句はやろうとしている事から、使用不可能です。
やろうとしていることとしては、
テーブルAには
auto_incrementのIDとその他データ
テーブルBには
テーブルAに挿入されたデータと関連したその他データ
つまり、テーブルBのレコードは、テーブルAに挿入してできたauto_incrementのIDのあるレコードと関連した情報を持つ予定です。
この二つのテーブルを関連づけるものとして、auto_incrementで発行されたIDを使用したいと思っています。
(プログラムとしてはapacheモジュールのPHPを使用しています。)
そこで、
同時に始めのinsertが実行されてしまった場合、last_insert_idで
それぞれのinsertで発行されたIDを取得できるのかどうか疑問でした。
よろしくお願いします。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
今、見られている記事はコレ!
-
弁護士が解説!あなたの声を行政に届ける「パブリックコメント」制度のすべて
社会に対する意見や不満、疑問。それを発信する場所は、SNSやブログ、そしてニュースサイトのコメント欄など多岐にわたる。教えて!gooでも「ヤフコメ民について」というタイトルのトピックがあり、この投稿の通り、...
-
弁護士が語る「合法と違法を分けるオンラインカジノのシンプルな線引き」
「お金を賭けたら違法です」ーーこう答えたのは富士見坂法律事務所の井上義之弁護士。オンラインカジノが違法となるかどうかの基準は、このように非常にシンプルである。しかし2025年にはいって、違法賭博事件が相次...
-
釣りと密漁の違いは?知らなかったでは済まされない?事前にできることは?
知らなかったでは済まされないのが法律の世界であるが、全てを知ってから何かをするには少々手間がかかるし、最悪始めることすらできずに終わってしまうこともあり得る。教えてgooでも「釣りと密漁の境目はどこです...
-
カスハラとクレームの違いは?カスハラの法的責任は?企業がとるべき対応は?
東京都が、客からの迷惑行為などを称した「カスタマーハラスメント」、いわゆる「カスハラ」の防止を目的とした条例を、全国で初めて成立させた。条例に罰則はなく、2025年4月1日から施行される。 この動きは自治体...
-
なぜ批判コメントをするの?その心理と向き合い方をカウンセラーにきいた!
今や生活に必要不可欠となったインターネット。手軽に情報を得られるだけでなく、ネットを介したコミュニケーションも一般的となった。それと同時に顕在化しているのが、他者に対する辛らつな意見だ。ネットニュース...
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
エクセルで最後の文字だけ置き...
-
エクセルの関数について教えて...
-
[MySQL] UNIQUE制約の値を更新...
-
SQL Left Join で重複を排除す...
-
sqlで、600行あるテーブルを100...
-
VIEWの元のテーブルのindexって...
-
エラー 1068 (42000): 複数の主...
-
LAST_INSERT_IDで同時にアクセ...
-
Updateの複数テーブル条件時のL...
-
証明写真機の設置場所が知りたい
-
select文のwhere句に配列を入れ...
-
SQLサーバから、項目の属性(型...
-
SQLにて特定の文字を除いた検索...
-
親と子供が複数のSQL取得方法
-
Mysql でレコードを追加した時...
-
Excel2000でレーダーチャートの...
-
PL/SQLの変数について
-
期間の重複を調べるSQL文につい...
-
SELECT~LIKE~の結果が変
-
ある条件の最大値+1を初番する...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
エクセルで最後の文字だけ置き...
-
エクセルの関数について教えて...
-
VIEWの元のテーブルのindexって...
-
エラー 1068 (42000): 複数の主...
-
SQLサーバから、項目の属性(型...
-
select文のwhere句に配列を入れ...
-
SQL Left Join で重複を排除す...
-
Access パラメータクエリをcsv...
-
マイクラPC版のコマンドで効率...
-
【Transact-sql】 execの結果を...
-
sqlで、600行あるテーブルを100...
-
SQLにて特定の文字を除いた検索...
-
1テーブル&複数レコードの更新...
-
PL/SQLの変数について
-
WordpressのContact form 7でzi...
-
複数テーブルのGROUP BY の使い...
-
バインド変数について
-
inner joinをすると数がおかし...
-
MySQLのint型で001と表示する方...
-
updateを1行ずつ実行したい。
おすすめ情報