用于MySQL的INSERT查询中的用户定义变量

我需要在MySQL的INSERT查询中使用用户定义的变量,请参阅下面的示例:

INSERT INTO `posts`(`id`) VALUES(NULL);
SET @last_insert_id = LAST_INSERT_ID();
INSERT INTO `comments`(`id`,`post_id`) VALUES(NULL,"@last_insert_id");

这个例子不起作用并插入0.我做错了什么?

最佳答案
无需将其存储在变量中.您可以在以下INSERT语句中调用LAST_INSERT_ID().

INSERT INTO `comments`(`id`,`post_id`) VALUES (NULL,LAST_INSERT_ID());

…除非您有多个插件要使用该ID执行.

在这种情况下,使用变量的正确语法是在没有引号的情况下这样做:

INSERT INTO `posts`(`id`) VALUES (NULL);
SET @last_insert_id = LAST_INSERT_ID();
/* Several new entries using the same @last_insert_id */
INSERT INTO `comments`(`id`,@last_insert_id);
INSERT INTO `comments`(`id`,@last_insert_id);

相关文章

MySQL 死锁 是指两个或多个事务互相等待对方持有的锁,从而导...
在MySQL中,InnoDB引擎通过Next-Key Locking技术来解决幻读问...
在数据库事务管理中,Undo Log 和 Redo Log 是两种关键日志,...
case when概述 sql语句中的case语句与高级语言中的switch语句...
其实很简单,只是为了忘记,做个记录,用的时候方便。 不管是...
1.进入服务,找到mysql服务,在属性里找到mysql的安装路径 2...