MYSQL установить значение по умолчанию столбца, чтобы быть новым идентификатором - PullRequest
0 голосов
/ 09 ноября 2010
unique_id | master_id | othercolumns

Если unique_id - это столбец с автоматическим приращением, есть ли способ установить значение по умолчанию для master_id столбца в качестве unique_id при вставке новой записи?

Ответы [ 2 ]

5 голосов
/ 09 ноября 2010

Я так понимаю, "unique_id" и "master_id" являются столбцами. Нет, вы не можете иметь один столбец по умолчанию со значением другого, но вы можете создать триггер для установки 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 голосов
/ 09 ноября 2010
insert into table ... set master_id=last_insert_id()+1;
...