2017-04-06 402 views
0

我想存儲有關乘客/客人的數據,這些乘客/客人一起預訂,並帶有由6個字母數字字符組成的共同參考號。表中的主鍵必須是(ref_number,number_of_guest)(例如(ASDFJK; 1)指的是預留內的訪客#1,(ASDFJK; 2)指的是預留內的訪客#2)。 我想要創建一個BEFORE INSERT ON觸發器,如SET NEW.ref = randomlyGeneratedString這個參考號碼,但很遺憾地看到MySQL只有行級語句,因此我只能向同一預留內的所有人添加n個不同的參考號,但這只是沒有意義。如何在MySQL中使用隨機生成的字符串作爲主鍵?

+0

你的問題到底是什麼?爲什麼您的參考號碼需要6個字母數字字符? – mba12

+0

理想情況下,您在預訂表中預訂了一行(並且該表格將包含參考編號);併爲乘客/客人提供單獨的表格,該表格提及預訂。 – Uueerdo

+0

假設我用隨機生成的引用在表中創建了一行,但是如何將其與該客戶相關聯呢?因此,如果我在一次預訂中有3位客人,我在「客人」表中添加了3行,但是如何將引用號插入每個人的記錄中?同樣,引用是使用觸發器'generate_reference BEFORE INSERT ON reservations'創建的。我可以通過簡單地在預訂系統和網站中生成參考號碼來解決問題,但希望在數據庫中完成。這是一個恥辱,MySQL缺乏語句級觸發器...... – Gabe

回答

1

我不認爲你需要一個primary key,像往常一樣primary key作爲自動增加,所以你可以添加一個字段保存,然後你可以做任何事情。