【问题标题】:MYSQL set default value of column to be new idMYSQL 将列的默认值设置为新的 id
【发布时间】:2010-11-09 09:23:45
【问题描述】:
unique_id | master_id | othercolumns

如果unique_id 是自动递增的列,有没有办法在插入新记录时让master_id 列的默认值为unique_id?

【问题讨论】:

    标签: mysql insert auto-increment


    【解决方案1】:

    我认为“unique_id”和“master_id”是列。不,您不能将一列默认为另一列的值,但您可以创建一个 trigger 以在插入时将 master_id 设置为 unique_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 ;
    

    【讨论】:

      【解决方案2】:
      insert into table ... set master_id=last_insert_id()+1;
      

      【讨论】:

        猜你喜欢
        • 2016-12-28
        • 1970-01-01
        • 2020-07-24
        • 2011-08-29
        • 1970-01-01
        • 1970-01-01
        • 2013-03-01
        • 2016-08-03
        • 2018-02-18
        相关资源
        最近更新 更多