MYSQL将列的默认值设置为新的id

Moa*_*oak 0 mysql insert auto-increment

unique_id | master_id | othercolumns
Run Code Online (Sandbox Code Playgroud)

如果unique_id是具有自动增量的列,是否有办法在插入新记录时将列master_id默认值设置为unique_id?

out*_*tis 5

我认为它是"unique_id",而"master_id"是列.不,您不能将一列默认为另一列的值,但您可以创建一个触发器以设置master_idunique_id插入值.假设master_id的默认值为0.然后以下触发器应该起作用:

delimiter ;;

CREATE TRIGGER default_master_id
  BEFORE INSERT
  ON table_name FOR EACH ROW
  IF NEW.master_id = 0 THEN
    SET NEW.master_id = last_insert_id()+1 ;
  END IF ;;

delimiter ;
Run Code Online (Sandbox Code Playgroud)