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

相關文章
相關標籤/搜索