- Java 双重比较
- java - 比较器与 Apache BeanComparator
- Objective-C 完成 block 导致额外的方法调用?
- database - RESTful URI 是否应该公开数据库主键?
我正在使用 MAKE TABLE 查询类型从现有表 T1 创建表 T2,并且需要添加一个自动递增字段作为新表 T2 的主键。
我很好奇所需的 SQL。例如:
SELECT AUTOINCREMENT(1, 1) AS ID, T1.*, INTO T2 FROM T1
AUTOINCREMENT(1, 1) AS ID
注释当然不起作用,但我怀疑它可能起作用,并且仅用于说明目的,以说明我正在尝试做什么。
请注意,在使用 ALTER TABLE 语句创建表后,我无法更改表,当从 T1 创建 T2 时,我需要即时构建 AUTOINCREMENT 字段(并填充它)。
最佳答案
在评论中,您说“查询在数据库打开时运行,因为表单打开以供用户输入。我想我可以构建一个宏来运行 MAKE TABLE 查询,然后在需要时运行另一个 ALTER TABLE 查询”。
与其每次都重新创建 T2,不如创建 T2 一次,然后每次都清空其内容,然后再从 T1 追加,这样会更简单。丢弃 T2 中的行:
Dim strSql as String
strSql = "DELETE FROM T2;"
CurrentProject.Connection.Execute strSql
如果要将 ID 列的自动编号重置为 1,可以使用 ALTER TABLE 语句。
strSql = "ALTER TABLE T2 ALTER COLUMN ID COUNTER(1, 1);"
CurrentProject.Connection.Execute strSql
然后将T1的内容添加到T2。
strSql = "INSERT INTO T2 (field1, field2)" & vbCrLf & _
"SELECT field1, field2 FROM T1;"
CurrentProject.Connection.Execute strSql
只需将 ID 列留在字段列表之外,让自动编号处理它。如果您愿意,可以在该语句的 SELECT 部分使用 ORDER BY 控制添加 T1 行的顺序。
我使用 ADO (CurrentProject.Connection) 来执行所有这三个语句。但是,如果您愿意,第一条和第三条语句应该可以在 DAO 下正常运行。但是该 ALTER TABLE 语句必须从 ADO 运行。
关于database - 微软 Access 2007 : Add AUTOINCREMENT field from MAKE TABLE query,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9181915/
SQLite Autoincrement(自动递增) SQLite 的 AUTOINCREMENT 是一个关键字,用于表中的字段值自动递增。我们可以在创建表时在特定的列名称上使用 AUTOINCRE
我有以下 SQLite 表: CREATE TABLE podcast_search ( _id INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT,
我创建了一个带有自动递增字段的数据库: filecur.execute("CREATE TABLE IF NOT EXISTS File_Data (_FID INTEGER PRIMARY KEY
假设我有一个看起来像这样的模型 Issue: class Issue(models.Model): title = models.CharField(max_length=100) a
我正在尝试使用 fts3 在 sqlite3 中创建一个虚拟表,并将一列作为自动增量,但是在插入值时,该列没有被填充。 代码: CREATE VIRTUAL TABLE contact USING f
我正在寻找一种在 MySQL“CREATE VIEW”中插入一种自动增量列的方法。 我使用的 ORM 有一些限制,其中之一是每个表(或 View )必须只有一个唯一标识符... 无论如何......从
我最近发布了一个应用程序:https://my.kendozone.com在 Laravel 5.3/MySQL 中 我正在获取用户,但一件奇怪的事情是我的用户 ID 没有增加 1。 此处最后 10
我想在行计数器更新时模拟自动增量。 我的触发器是: CREATE DEFINER = CURRENT_USER TRIGGER `db`.`token_AFTER_UPDATE` AFTER UPDA
大家好, 我正在尝试制作一个表,其中包含一堆引用用户的 ID,并且对于每个用户,将有多个帖子也应该有自己的 ID。我的问题是如何制作表格,以便在为某个用户插入记录时,他们的帖子 ID 应递增 1。这意
我正在运行一个 fgetcsv 查询,以将一堆数据从 CSV 导入 WordPress。 我想知道如何从某个数字开始自动递增,例如,从 1000 开始。 $import1="INSERT into w
我搜索过堆栈溢出问题,但找不到解决方案。这是我的 SQLite onCreate 代码。 public void onCreate(SQLiteDatabase database) { Str
我正在使用 OleDb 处理 MS Access 数据库文件。这是片段: OleDbCommand command = oleDbConnection.CreateCommand(); command
我在数据库中有一个表,主键是'ID',我想问一下如何让它成为AUTOINCREMENT 我知道这很容易问,但我不知道我该怎么做。 谢谢 最佳答案 有一个属性“Identity Specificatio
我在 AUTOINCREMENT 附近遇到语法错误。这个错误的原因是什么? CREATE TABLE person ( id INTEGER NOT NULL AUTOINCREMENT,
我想将数据上传到雪花表中。雪花表有一个带 AUTOINCREMENT 的主键字段。 当我尝试在没有主键字段的情况下将数据上传到雪花时,我收到了以下错误消息: The COPY failed with
我正在将数据从 csv 导出到 mysql 数据库中,我希望数据库为每个导入的记录生成一个唯一的 id。我想使用唯一字段在 Crystal 报告中生成收据编号。 你认为最好的方法是什么? 最佳答案 如
刚刚开始使用 Sequelize 并尝试在 SQLite 数据库上设置自动增量列。迁移如下所示: return queryInterface.createTable('Users', { id:
假设我有 1000 万个客户名称,每个名称都与一个或多个地址相关联,我想将数据放入 SQL 数据库中。 我创建了一个 Customer 表和一个 Address 表。 Customer 表包含一个自动
嘿,我制作了一个完整的应用程序,但没有添加自动增量列,但现在我需要此列来指定最大 ID,所以我在我的主 Activity 中创建了我的数据库,就像这样。我如何修改它以添加自动增量 _id 列? db
学习 phonegap 以编写适用于 Android 的基本应用程序。出于这个原因使用 WebSQL,我知道它已被弃用,但它仅适用于 Android 手机且无法缩放,因此此时不会为 polyfill
我是一名优秀的程序员,十分优秀!