在現實的開發中,咱們不多用到讓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