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

发布于 2024-09-30 23:19:56 字数 139 浏览 2 评论 0原文

unique_id | master_id | othercolumns

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

unique_id | master_id | othercolumns

If unique_id is a column with auto increment, is there a way to have the column master_id default value be the unique_id when inserting a new record?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

欲拥i 2024-10-07 23:19:56

我认为“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 ;

I take it "unique_id" and "master_id" are columns. No, you can't have one column default to the value of another, but you can create a trigger to set master_id to the value of unique_id on insert. Say the default for master_id is 0. Then the following trigger should work:

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 ;
一个人的旅程 2024-10-07 23:19:56
insert into table ... set master_id=last_insert_id()+1;
insert into table ... set master_id=last_insert_id()+1;
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文