将行从表复制到另一个

问题描述:

我想将表OLD的行复制到另一个表NEW将行从表复制到另一个

INSERT INTO NEW 
SELECT date, kind, id, product, version, quantity FROM OLD; 

OLD具有柱kind其为VARCHAR和含有像insertextractdelete字。在NEW表中,此列是INTEGER。有没有办法说,如果您发现delete插入1,如果您发现extract插入2等。

您可以使用CASE语句整数替换字符串标签:

INSERT INTO NEW 
SELECT date, 
     CASE WHEN kind = 'delete' THEN 1 
      WHEN kind = 'extract' THEN 2 
      ELSE ... 
     END, 
     product, 
     version, 
     quantity 
FROM OLD; 

这假设列正确排列,和所有其他的列类型匹配。

+0

谢谢,它工作! – yaylitzis

这应该为你工作,

INSERT INTO Destination SELECT * FROM Source; 

的正式定义见SQL As Understood By SQLite: INSERT