我想创建一个自动增量函数,允许我在多个表的指定列中保持唯一性。
我知道这在 mysql 的标准函数下不受支持,但似乎可以手动完成。有人能指出我正确的方向吗?
谢谢
我想创建一个自动增量函数,允许我在多个表的指定列中保持唯一性。
我知道这在 mysql 的标准函数下不受支持,但似乎可以手动完成。有人能指出我正确的方向吗?
谢谢
你有几个选择。一,您可以将 id 设为 UUID(36+ varchar 字段),并使用 MySQL 的UUID()函数。另一种选择是将表用作序列生成表的一种,允许您使用 auto_increment 功能,并且只需使用在插入此表时生成的任何内容作为其他地方的键。
就个人而言,我会选择 UUID,因为这是拥有全局唯一标识符的一种非常常见的方式。一个警告:你最好用你的客户端语言生成这些 UID,而不是使用 MySQL 的实现。
将列(ID)设置为主要/唯一和自动增量有什么问题?
ps:此外,如果您需要多个表之间的唯一性,那么您可能做错了什么。
认为这可能是这样的
delimiter $$
CREATE PROCEDURE myProc()
BEGIN
DECLARE mid INT;
START TRANSACTION;
select MAX(id) + 1 INTO mid ( SELECT id FROM tbl1 UNION ALL SELECT id from tbl2 ... ) tbls;
INSERT INTO <somt_tbl> VALUES ( mid, ... );
COMMIT;
END$$