嘿,伙计们,我正在处理SQL,我发现了这个错误。
首先,我将向您展示我的代码。
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));它工作得很好,所以问题在哪里,我想插入许多列,而不仅仅是一列
发布于 2015-03-28 19:34:44
我认为您得到了这个错误,因为由rows返回的SELECT不止一个。所以您可以使用这样的INSERT INTO TABLE SELECT:
Insert into HistoriqueEquipement (DateMHS,CodeEquipement,nomenclature)
SELECT CURDATE(), CodeEquipement, nomenclature
FROM equipement
WHERE Numero_Serie =241;发布于 2015-03-28 19:38:31
您应该使用insert . . . select,并且可以使用它的常量:
Insert into HistoriqueEquipement (DateMHS,CodeEquipement)
SELECT '2015-03-28', CodeEquipement
FROM equipement
WHERE Numero_Serie = 241;注意:
limit 1。2015-03-28计算为1984 (想想“减法”)。然后,这将被视为约会。发布于 2015-03-28 19:47:33
由于您的子查询
SELECT CodeEquipement,nomenclature FROM equipement WHERE Numero_Serie =241返回超过一个结果而导致的错误。
如果要向表中插入一行,则可以尝试:
Insert into HistoriqueEquipement (DateMHS,CodeEquipement,nomenclature)
VALUES (2015-03-28,
(SELECT top 1 CodeEquipement,nomenclature FROM equipement WHERE Numero_Serie =241));如果您想将所有记录从equipement表插入到HistoriqueEquipement表中。
然后您可以使用:插入select
Insert into HistoriqueEquipement(DateMHS,CodeEquipement)
SELECT '2015-03-28',CodeEquipement
FROM equipement
WHERE Numero_Serie = 241;https://stackoverflow.com/questions/29321516
复制相似问题