MySQL设置主键的值为UUID

在现实的开发中,咱们不多用到让MySQL本身生成uuid,由于在高并发场景下,这是不被容许的。一般是在代码中生成id,或者是使用专业的id服务器(Twitter-Snowflake)。咱们要讨论的内容是,当咱们在手动输入元数据的时候,若是恰巧有一列uuid,咱们不想手动输入,而是但愿MySQL为咱们自动建立,那么咱们能够使用触发器。mysql

DELIMITER ;;
CREATE TRIGGER `foo_before_insert` 
BEFORE INSERT ON `foo` FOR EACH ROW 
BEGIN
  IF new.id IS NULL THEN
    SET new.id = uuid();
  END IF;
END;;
DELIMITER ;

最后,但愿您谨慎地使用触发器、视图、外键等等,它们都会影响MySQL的性能。 本文的sql来自: MySQL set default id UUIDsql

相关文章
相关标签/搜索