Php 在MySql中创建触发器时删除新插入的行

Php 在MySql中创建触发器时删除新插入的行,php,mysql,triggers,yii,Php,Mysql,Triggers,Yii,我正在尝试获取最后插入的所有行的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()->

我正在尝试获取最后插入的所有行的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…但问题是我在数据库中找不到这些行…不知道是什么错误…需要帮助…

您的sql语法是什么

SELECT @insertIDs AS "Inserted_IDs"
从哪里来?从T中选择*

@insertIDs是一个用户变量,在当前会话中可见;因此,您可以在其他MySQL会话中创建同名的不同变量

看起来您的代码使用了多个会话,因此显示了意外的结果。检查您的代码是否使用一个会话(我指的是MySQL连接)来执行INSERT和SELECT查询

另外,您可以在MySQL命令行控制台中尝试这段代码,它必须工作