php - 如何获取当前插入的 AUTO_INCREMENT id?

标签 php mysql sql

我有以下表格结构。

enter image description here

我想在插入新记录时为 item_image_name 插入与 item_id 的值相同的值(这是 AUTO_INCREMENT)。

编辑 我在插入时想要这个

INSERT INTO items(user_id, item_image_name) VALUES ('','LAST_INCREMENT_VALUE + 1')

最佳答案

您可以通过在表上定义一个 before insert 触发器来实现这一点。
在主体中,首先您可以找到要分配给主键字段的下一个自动增量值,并将相同的值用于 image_name 字段。

示例:

delimiter //

drop trigger if exists bi_on_items //

create trigger bi_on_items before insert on items
for each row
begin
  if NEW.item_image_name is null OR length( trim( NEW.item_image_name ) ) = 0 then
    set NEW.item_image_name := ( SELECT AUTO_INCREMENT 
                                   FROM INFORMATION_SCHEMA.TABLES
                                  WHERE TABLE_NAME = 'items'
                                    AND TABLE_SCHEMA = DATABASE() );

  end if;
end;
//

delimiter ;

关于php - 如何获取当前插入的 AUTO_INCREMENT id?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23903677/

相关文章:

php - 如何指定多个样式表

MySQL:格式化字符串

MySQL 中的 Python 更新

mysql - 对州进行分组并计算每个州的邮政编码数量

mysql - 通过加入获取未读计数

java - 消息 -"could not read a hi value - you need to populate the table: hibernate_sequence"

php - 使用 Ajax 在同一页面中通过 php 发布查询结果

javascript - Node.js 中的 PHP aes-256-cbc mcrypt_decrypt() 等价物

PHP 连接到 Cloud SQL 实例超时

PHP:突出显示表格的每一行