向查询结果创建的新表添加主键



我想使用查询结果创建一个表。但我也想添加一个自动递增的主键字段。有可能用SQLite实现吗?

示例:从表a中选择两个字段。但是我希望输出模式为(id,field_a,field_b)。

create table foo as
    select field_a, field_b
    from tablel_a

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

这是不可能用单个语句实现的;CREATE TABLE ... AS ...不创建约束。

您必须使用两种语句:

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

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

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

最新更新