首先我会告诉你我的代码
Insert into HistoriqueEquipement (DateMHS,CodeEquipement,nomenclature) VALUES (2015-03-28, (SELECT CodeEquipement,nomenclature FROM equipement WHERE Numero_Serie =241));
我收到错误#1241 - 操作数应包含1列; 如果我使用
Insert into HistoriqueEquipement (DateMHS,CodeEquipement) VALUES (2015-03-28, (SELECT CodeEquipement FROM equipement WHERE Numero_Serie =241));
它完美地工作,所以问题是我想插入许多列而不仅仅是一个
答案 0 :(得分:0)
我认为您收到此错误,因为rows
返回的SELECT
不止一个。所以你可以使用这样的INSERT INTO TABLE SELECT
:
Insert into HistoriqueEquipement (DateMHS,CodeEquipement,nomenclature)
SELECT CURDATE(), CodeEquipement, nomenclature
FROM equipement
WHERE Numero_Serie =241;
答案 1 :(得分:0)
您应该使用insert . . . select
,并且可以使用常量:
Insert into HistoriqueEquipement (DateMHS,CodeEquipement)
SELECT '2015-03-28', CodeEquipement
FROM equipement
WHERE Numero_Serie = 241;
注意:
limit 1
。2015-03-28
评估为1984
(想想"减法")。然后将其视为日期。答案 2 :(得分:0)
您获得的错误,因为您的子查询
SELECT CodeEquipement,nomenclature FROM equipement WHERE Numero_Serie =241
返回超过1个结果。
如果您想在表格中插入一行,那么您可以尝试:
Insert into HistoriqueEquipement (DateMHS,CodeEquipement,nomenclature)
VALUES (2015-03-28,
(SELECT top 1 CodeEquipement,nomenclature FROM equipement WHERE Numero_Serie =241));
如果要将equipement
表中的所有记录插入HistoriqueEquipement
表。
然后你可以使用:Insert into select
Insert into HistoriqueEquipement(DateMHS,CodeEquipement)
SELECT '2015-03-28',CodeEquipement
FROM equipement
WHERE Numero_Serie = 241;