2017-04-06 403 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作为自动增加,所以你可以添加一个字段保存,然后你可以做任何事情。