わかりました、これが私がやりたいことです。
Table1( globalID [主キー、自動インクリメント] (PHP で使用するグローバル ID です))
Table2 & table3( ID * [外部の主キー、globalID を参照]、この後の他の列、テーブル 2 と 3 ごとに異なる);
私が知りたいのは、table2またはtable3に行を挿入すると、talbe1のglobalIDが入力され、それに応じてtable2またはtable3に値が挿入されるようにする方法と方法があるかどうかです。トリガーで達成できると思いますが、トリガーは私の得意分野ではないので、それが唯一の方法である場合は、例を挙げてください。
私はまた、それをこのシナリオに拡張することも考えていました:
Table1( globalID [主キー、自動インクリメント] (PHP で使用するグローバル ID です), OtherID [UUID]);
Table2 & table3( ID * [外部の主キー、OtherID を参照]、この後の他の列、テーブル 2 と 3 ごとに異なる);
しかし、その場合でも、テーブルに新しい行を挿入する際に 2 人のユーザーが同じ UUID を生成する可能性はほとんどありません。PHPサーバー側でコーディングしなくても、SQLサーバーによって生成されたキーを自動的に作成することで、それを回避できるかどうか疑問に思っていました。
誰かがこの問題を解決したことがあり、私が注意したり考慮したりする必要がある他のことを指摘できる場合は、それらを指摘してください. また、解決例を教えてください。
編集:
@ジョンB.
TosheXによる編集
返信してくれてありがとう。それまでの間、私はこれについて読んでおり、SQL以外のソリューション(php)をすでに持っています。基本的に、Yii PHP フレームワークを使用してテーブルのモデルを作成し、アクティブなレコードを作成して新しい行を作成します。これを行うと、table1 の ID が生成され、その後、入力された行を指す変数がまだあり、生成された ID は自動的にフェッチされるため、読み取ることができます (データベースの最後のレコードを確認する必要はありません)。これは、誰かが作成したレコードを数ミリ秒後に返す可能性があります)。その後、適切な table2 または 3 内に行を作成し、既に生成された値を ID に割り当てるだけです。
ここでアイデアを見つけました:
http://www.yiiframework.com/forum/index.php/topic/14593-alternate-for-mysql-insert-id/
私は本当にデータベースに組み込みのソリューションが欲しかったのですが、データベースの経験があり、トリガーについて十分に知っているので(トリガーが好きではないのに十分です:D)、正しく理解するのが非常に難しいコードであることを知っているので、代替案があるかどうか疑問に思っていました自動入力などに。
それでも、お時間を割いてご回答いただき、誠にありがとうございました。私もmsSQLでもっと働いていて、あなたの言ったことに論理を見つけました。mySQL の UUID は msSQL の GUID と同じであり、ご覧のとおり、それも考慮しました。
これらすべてを考慮して、私が見つけた解決策を採用しますが、あなたが助けようとし、いくつかの良いアイデアをテーブルにもたらしたので、あなたの答えを受け入れます.
再度、感謝します。