将主键添加到查询结果创建的新表中

时间:2016-07-18 18:11:21

标签: sql sqlite

我想使用查询结果创建一个表。但我还想为它添加一个自动增量主键字段。是否可以使用SQLite实现它?

实施例: 从table_a中选择两个字段。但我希望输出模式为(id,field_a,field_b)。

create table foo as
    select field_a, field_b
    from tablel_a

目前使用SQLite 3,但使用其他数据库系统的解决方案也没问题。

2 个答案:

答案 0 :(得分:1)

单一陈述无法做到这一点; CREATE TABLE ... AS ...不会产生约束。

你必须使用两个陈述:

CREATE TABLE foo ( ID INTEGER PRIMARY KEY, [...] );
INSERT INTO foo (...) SELECT ...;

答案 1 :(得分:0)

默认情况下,sqlite会在您创建的每个表格中添加 rowid 列,因此除非此处有特定需求,否则您可以使用此 rowid

查看https://www.sqlite.org/lang_createtable.html#rowid