好的,這是我想要做的。mySQL:2個其他表的索引表
表1(globalID [主鍵,自動增量](是一個全局ID i的PHP會使用))
表2 &表3(ID * [外部主鍵,引用globalID],之後的其他列,對於表2和3中的每一個都是不同的);
我wannt知道的是,如果有一種方法,以及如何使它這樣,當我插入表2行或表3的globalID在talbe1被填充,它的價值還插在表2或table3相應地作爲一個ID。我認爲這將通過一個觸發器來實現,但觸發器並不是我的專長,所以如果這是可以完成的唯一方法,請舉例說明。
我也在想將其擴大到這種情形的:
表1(globalID [主鍵,自動遞增的(是一個全球性的ID我在PHP會使用), 其他ID [一個UUID]);
表2表3 &(ID * [外國主鍵,引用到OtherID],其它列在此之後,對每個的表2和3不同);
但在這種情況下,那裏仍是幾乎不存在可能性,而在一些表中插入新行2個用戶可能會產生相同的UUID。我想知道是否可以通過自動生成sql服務器生成的密鑰來避免這種情況,而不必爲PHP服務器端編寫代碼。
如果有人已經解決了這個問題,也可以指出我需要注意或考慮的其他事情,請將它們指出來。也請提供一個解決方案的例子。
編輯:
@約翰B.
編輯由TosheX
感謝你的回覆。在此期間,我一直在閱讀這篇文章,並且我已經有了一個SQL以外的解決方案(在php中)。基本上我使用Yii PHP框架創建表格的模型,並創建一個活動記錄來填充新行。現在當我這樣做時,會生成table1中的ID,然後我仍然有一個指向該填充行的變量,並且我可以讀取生成的ID,因爲它會自動提取(不必檢查數據庫中的最後一條記錄,這可能會返回某人在毫秒後創建的記錄)。之後,我只需要在適當的表格2或3內創建一行,併爲該ID分配已經生成的值。
,我發現這裏的想法:
http://www.yiiframework.com/forum/index.php/topic/14593-alternate-for-mysql-insert-id/
我真的很想在數據庫中內置的解決方案,但因爲我有數據庫的經驗和做足夠的瞭解觸發器(夠不喜歡他們:d )我知道這是一個非常棘手的代碼,所以我想知道是否有替代自動填充或什麼的。
不過,我真的很感謝你的迴應,因爲你花了你所有的時間和精力。我一直在msSQL工作,並且我發現你說的邏輯。 mySQL中的UUID與msSQL中的GUID相同,我也已經考慮過了,如你所見。
考慮到所有這些因素,我會用我找到的解決方案,但是我會接受你的答案,因爲你確實試圖幫助你,並且你確實帶來了一些好的想法。
再次感謝。