假设有一个用户信息需要插入表只,不过信息需要插入user和user_info表中
其中user_info需要user表中u_id这个主键
一般对应操作为先插入user表,再查询user.u_id 去user_info表插入
demo中发现不行,所以不过查询资料发现 LAST_INSERT_ID() 能将插入过之后的id进行使用,无需查询
插入示例;
INSERT INTO user (username,pswd) VALUES ("张三","123"); SET @id = LAST_INSERT_ID(): INSERT INTO user_info (u_id,phone,email) VAULES (@id,"13145678895","xasd@qq.com");
或者
INSERT INTO user_info (u_id,phone,email) VAULES ((SELECT LAST_INSERT_ID()),"13145678895","xasd@qq.com");
插入查询id;
INSERT INTO user (username,pswd) VALUES ("张三","123"); SET @id = LAST_INSERT_ID(): SELECT @id; OR SELECT LAST_INSERT_ID():
不过需要注意,只有自增长的主键才能进行该操作
golang 使用gorm库进行操作
库
实际代码
s1 := "insert into curriculums (c_name,u_id,price) values(?,?,?);" s2 := "set @id = LAST_INSERT_ID();" s3 := "insert into catalog (c_id,name,url) values (@id,?,?);" conn.Exec(s1,"golang语言" , 1 , 89.99).Exec(s2).Exec(s3,"golang语言test","https://www.xxx.com")
实际结果
注意:
其他来源
https://www.cnblogs.com/seedling/p/9231254.html