开发者社区> 问答> 正文

您可以在一条语句中访问MySQL中的自动增量值吗??mysql

我有一个包含用户表的MySQL数据库。该表的主键是'userid',它被设置为自动递增字段。

我想做的是,当我向表中插入新用户时,要使用自动增量在另一个字段“ default_assignment”的“用户ID”字段中创建的值。

例如

我想要这样的声明:

INSERT INTO users ('username','default_assignment') VALUES ('barry', value_of_auto_increment_field()) 因此我创建了用户“ Barry”,生成的“ userid”为16(例如),但我还希望“ default_assignment”具有相同的值16。

有什么办法可以做到这一点?

谢谢!

展开
收起
保持可爱mmm 2020-05-17 12:25:46 287 0
1 条回答
写回答
取消 提交回答
  • 无需创建另一个表,并且max()会因表的auto_increment值而出现问题,请执行以下操作:

    CREATE TRIGGER trigger_name BEFORE INSERT ON tbl FOR EACH ROW BEGIN DECLARE next_id INT; SET next_id = (SELECT AUTO_INCREMENT FROM information_schema.TABLES WHERE TABLE_SCHEMA=DATABASE() AND TABLE_NAME='tbl'); SET NEW.field=next_id; END 我声明next_id变量是因为通常它将以其他方式使用(*),但是您可以直接使用new.field =(select ...)

    () To auto-name an image: SET NEW.field = CONCAT('image_', next_id, '.gif'); () To create a hash: SET NEW.field = CONCAT( MD5( next_id ) , MD5( FLOOR( RAND( ) *10000000 ) ) );来源:stack overflow

    2020-05-17 12:27:39
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
搭建电商项目架构连接MySQL 立即下载
搭建4层电商项目架构,实战连接MySQL 立即下载
PolarDB MySQL引擎重磅功能及产品能力盛大发布 立即下载

相关镜像