【发布时间】:2010-11-09 09:23:45
【问题描述】:
unique_id | master_id | othercolumns
如果unique_id 是自动递增的列,有没有办法在插入新记录时让master_id 列的默认值为unique_id?
【问题讨论】:
标签: mysql insert auto-increment
unique_id | master_id | othercolumns
如果unique_id 是自动递增的列,有没有办法在插入新记录时让master_id 列的默认值为unique_id?
【问题讨论】:
标签: mysql insert auto-increment
我认为“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 ;
【讨论】:
insert into table ... set master_id=last_insert_id()+1;
【讨论】: