我正在尝试获取所有最后插入的行的ID。为此我创建了一个触发器,如下所示;
CREATE TRIGGER mytable_insert
AFTER INSERT ON mytable
FOR EACH ROW SET @insertIDs = CONCAT_WS(',', @insertIDs, NEW.id)
然后在程序部分代码如下
$sql="INSERT INTO `table` ({columns}) VALUES({values})";
$command=Yii::app()->db->createCommand($sql);
if($command->execute()){
$sql='SELECT @insertIDs AS "Inserted_IDs"';
$command=Yii::app()->db->createCommand($sql);
$rows=$command->queryAll();
var_dump($rows);
}
这里我有一些ID ....但问题是我在数据库中找不到那些行...不知道是什么错误.....需要帮助....
答案 0 :(得分:0)
你的sql语法是什么?
SELECT @insertIDs AS "Inserted_IDs"
“来自”? (SELECT * FROM T;)
答案 1 :(得分:0)
@insertIDs
是一个用户变量,在当前会话中可见;因此,您可以在其他MySQL会话中创建具有相同名称的不同变量。
看起来你的代码使用了多个会话,因此显示出意想不到的结果。检查您的代码是否使用一个会话(我的意思是MySQL连接)来执行INSERT和SELECT查询。
此外,您可以在MySQL命令行控制台中尝试此代码,它必须正常工作。