在现实的开发中,咱们不多用到让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