sqlite 如何使用SELECT语句插入记录?

wwtsj6pe  于 2022-12-13  发布在  SQLite
关注(0)|答案(1)|浏览(162)

背景

我当前有一个名为Parts_list的表,其结构如下所示:

_id是自动递增的,所以我总是提供NULL,这样可以很好地工作。
我想使用SELECT语句填充此表,但在编写INSERT SELECT语句时遇到困难。
"我所尝试的"
为了进行测试,我尝试了以下SQL语句:

INSERT INTO Parts_list VALUES 
   (null, 'My Name',CURRENT_TIMESTAMP, null, null, null, null, 
    null, null, null, null, null, null, null, null, 
    null, null, null, null, null, null, null, null, 
    null, null, null,null, null, null)

并且插入新行没有任何问题。

问题

然而当我尝试这样的东西:

INSERT INTO Parts_list VALUES 
(null, 'My Name',CURRENT_TIMESTAMP, Part_ID, null, null, null, 
 null, null, null,null, null, null, null, null, null, null, 
 null, null, null, null, null, null, null, null, null, null, 
 null, null) 
SELECT Part_ID FROM tracking_vehicles

在我选择一列并尝试插入该列时,没有任何React。我的语法是否有问题?在我的示例中,“Part_ID”是VARCHAR,它与插入的数据类型相匹配。如有任何帮助或指导,我们将不胜感激。
PS我也试过这个:

INSERT INTO Parts_list 
(null, 'My Name',CURRENT_TIMESTAMP, Part_ID, null, 
 null, null, null, null, null,null, null, null, null, 
 null, null, null, null, null, null, null, null, null, 
 null, null, null,null, null, null) 
 SELECT Part_ID FROM tracking_vehicles

没有“VALUES”这个词,因为我看到很多例子没有使用这个词,但是它不起作用。即使当我尝试我的第一个没有“VALUES”的例子,它也不起作用,所以我猜我需要这个词。

vcirk6k6

vcirk6k61#

使用提供的示例here,我建议您使用以下语法:

INSERT INTO Parts_list (_id, table_owner, etc) 
SELECT null, 'My Name', etc 
FROM tracking_vehicles

像我开始那样列出所有列,然后传递SELECT中的所有值。

相关问题