Mysql 使用值将多行从表插入到另一个表

Mysql 使用值将多行从表插入到另一个表,mysql,Mysql,我想从表中插入多行到另一个表中,我想从中获取行,我只想要两列,但在区分表中我有三列,源表中的前两列将影响到区分表中的两列,而distination表中的第三个束将受某个值的影响 以下是我要从源表中选择的值: SELECT codeArt, qte FROM LigneBonEntrée WHERE numBon = NEW.num 在distination文件夹中,我插入了以下内容: INSERT INTO LigneInterventaire(codeArt, qte

我想从表中插入多行到另一个表中,我想从中获取行,我只想要两列,但在区分表中我有三列,源表中的前两列将影响到区分表中的两列,而distination表中的第三个束将受某个值的影响

以下是我要从源表中选择的值:

SELECT codeArt, qte FROM LigneBonEntrée
            WHERE numBon = NEW.num
在distination文件夹中,我插入了以下内容:

INSERT INTO LigneInterventaire(codeArt, qteInv, numInv) 
            VALUES (NEW.codeArt, NEW.qte, LAST_INSERT_ID());
如果我试过这个:

INSERT INTO LigneInterventaire(codeArt, qteInv, numInv) 
SELECT codeArt, qte FROM LigneBonEntrée
WHERE numBon = NEW.num
我需要插入值
LAST\u insert\u ID()

我该怎么做

编辑: 我真正想做的是,当这个触发器被触发时,我在一个表上有一个触发器,我想将当前日期插入另一个名为Inventaire的表,当然插入的主键将是
LAST\u insert\u ID()
,然后我想使用这个
LAST\u insert\u ID()
进行以下查询:

INSERT INTO LigneInterventaire(codeArt, qteInv, numInv) 
            SELECT codeArt, qte FROM LigneBonEntrée
            WHERE numBon = NEW.num;
LAST\u INSERT\u ID()
的值将影响列
numiv

这就是我使用的触发器:

DELIMITER //
CREATE TRIGGER `accepterLivraion` BEFORE UPDATE ON `BonEntrée`
FOR EACH ROW
BEGIN
    DECLARE id INTEGER;
    IF NEW.etat = 'Accepté' THEN
        IF verifierLivraison(OLD.num) = FALSE THEN
            SIGNAL sqlstate '45001' set message_text = "La livraison n'a pas respectée les termes de la commande de sortie.";
        ELSE
            INSERT INTO Inventaire(`date`) VALUES (DATE(NOW());
            SET id = LAST_INSERT_ID();
            INSERT INTO LigneInterventaire(codeArt, qteInv, numInv) 
            SELECT codeArt, qte FROM LigneBonEntrée
            WHERE numBon = NEW.num;
        END IF;
    END IF;
END//
DELIMITER ;

如果我理解正确,您已经在变量
id
中有了值。因此,只要改变

SELECT codeArt, qte FROM LigneBonEntrée


如果您的表
lignebonterée
有一列
id
,请更改您分配给它的变量的名称
LAST\u INSERT\u id()
,或者为表使用别名。

您不能按要求执行。我甚至不确定我能否准确地说出你在问什么,或者你为什么要这么做。您可以将
LAST\u INSERT\u ID()
作为另一个字段添加到
SELECT
中,但它(我希望)对导入的所有行都有1个值,等于连接上前面的
INSERT
的ID。这在SQLFIDLE示例中得到了验证:@Simonatmso.net如果我之前将LAST_INSERT_ID()的值影响到某个变量,然后使用此变量而不是LAST_INSERT_ID(),我不知道,因为我不知道LAST_INSERT_ID()将返回什么ID。如果您希望它是该
插入的上一次插入的ID。。。选择
,则这是不可能的。你到底想在这里实现什么?请提供更多细节/样本数据集来说明您的观点。这感觉就像你在试图重新创造wheel@Simonatmso.net请查看我所做的修改,检查下面@peterm的答案,因为它看起来符合您的要求。
SELECT codeArt, qte, id FROM LigneBonEntrée
                     ^^