如何在MySQL中使用随机生成的字符串作为主键?

如何在MySQL中使用随机生成的字符串作为主键?,mysql,Mysql,我想用一个由6个字母数字字符组成的通用参考号存储一起预订的乘客/客人的数据。表中的主键必须是(ref_number,number_of_guest)(例如,(ASDFJK;1)表示预订中的guest#1,(ASDFJK;2)表示预订中的guest#2)。 我想要的是在INSERT ON触发器上使用创建这个参考号,就像SET NEW.ref=randomlyGeneratedString,但是很遗憾看到MySQL只有行级语句,因此我只能向同一保留中的所有人添加n个不同的参考号,但这毫无意义。我不认

我想用一个由6个字母数字字符组成的通用参考号存储一起预订的乘客/客人的数据。表中的主键必须是(ref_number,number_of_guest)(例如,(ASDFJK;1)表示预订中的guest#1,(ASDFJK;2)表示预订中的guest#2)。
我想要的是在INSERT ON触发器上使用
创建这个参考号,就像
SET NEW.ref=randomlyGeneratedString
,但是很遗憾看到MySQL只有行级语句,因此我只能向同一保留中的所有人添加n个不同的参考号,但这毫无意义。

我不认为您需要一个
主键
,像往常一样
主键
自动增加,这样您就可以添加一个字段保存,然后您就可以做所有事情了。

您的问题是什么?为什么您的参考号必须是6个字母数字字符?理想情况下,预订表中有一行用于预订本身(该表将包含参考号);为乘客/客人创建一个单独的表,该表引用了预订。假设我在表中创建了一行,其中包含随机生成的引用,那么如何将其链接到客人?因此,如果我在一个预订中有3位客人,我会在
guest
表中添加3行,但是如何将参考号插入到每个人的记录中呢?同样,使用触发器创建引用
generate\u reference,然后再插入到保留中
。我可以通过在预订系统和网站中简单地生成参考号来解决这个问题,但我更愿意在数据库中这样做。MySQL缺少语句级触发器真是太遗憾了。。。