我有一个表SINVOICE
和另一个名为SINVOICE_LINE
的表。
我需要将SINVOICE
的所有列都放入SINVOICE
_ LINE。
我创建了相应的列,并尝试复制值。 SINVOICE
的主键是SINVOICE_CODE
,而SINVOICE_LINE
的主键是复合键(SINVOICE_CODE, SINVOICE_LINE_NUMBER)
。
我写了以下查询:
INSERT INTO SINVOICE_LINE (sinvoice.ITINERARY_CODE)
SELECT sinvoice_line.ITINERARY_CODE
FROM SINVOICE
INNER JOIN sinvoice_line ON sinvoice.sinvoice_code = sinvoice_line.sinvoice_code;
我收到此错误:
不能将值NULL插入到SINVOICE_CODE列中,表SINVOICE_LINE;列不允许空值。 INSERT失败。
我不明白为什么我收到此错误,因为我没有尝试在SINVOICE_CODE
列中插入任何值。
感谢!!!
答案 0 :(得分:1)
看起来你需要UPDATE而不是INSERT。
试试:
UPDATE SINVOICE_LINE
SET ITINERARY_CODE = sinvoice.ITINERARY_CODE
from SINVOICE
WHERE sinvoice.sinvoice_code = sinvoice_line.sinvoice_code;