sql - 使用 SELECT INTO 创建一个新表并添加一个主键

标签 sql database ms-access dataset

我有一个使用 SELECT INTO SQL 语法创建的数据库表。该数据库位于 Access 中,包含大约 500,000 行。问题是当我进行连接时,唯一的是整行 - 我想要的是一个自动编号 ID 字段作为主键。

我目前的代码是这样的:

SELECT INTO new_table
FROM 
(SELECT * FROM table a, table b WHERE a.name = b.name)

我希望有一种方法可以在我的 SELECT INTO 查询中添加一个子句,这样我就可以添加一个主键并一次创建表 - 这可能吗?

如果没有,仅使用 SQL 执行此操作的最佳方法是什么?

最佳答案

据我所知,在 INSERT INTO 语句中添加 Primary Key 是不可能的。但是,您可以做的是添加一个 IDENTITY 列,该列使用 SQL Server 的 IDENTITY() 自动递增。功能。

像这样:

SELECT 
    ID = IDENTITY(INT, 1, 1),
    col1,
    col2
INTO new_table 
FROM (SELECT * FROM table a, table b WHERE a.name = b.name)

关于sql - 使用 SELECT INTO 创建一个新表并添加一个主键,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15508948/

相关文章:

sql - 创建数据库范围的凭证语法

php - 从 PHP 调用 MySql 存储过程 (PDO)

javascript - 如何在不使用任何库的情况下从前端和后端连接到数据库(PostgreSQL)

mysql - 使用 INNER JOIN 处理两批列

sql - 将数据插入有关系的表中

c# - 如何使用参数运行 Access 查询

mysql - 从sql中的表列中提取2个字母的大写子字符串

sql - Linq to SQL - View 与存储过程

mysql - 我如何为 ALL 条件编写此 SQL 查询?

用于 Microsoft Access 数据库的 SQL 语句,该数据库将获取前 5 条记录,但跳过前 5 条