【问题标题】:Get RowID on Progress Insert在进度插入上获取 RowID
【发布时间】:2016-02-04 15:39:10
【问题描述】:

我有一个没有主键的表。我需要向表中添加一个主键,所以我添加了一个名为“ID”的列。我正在尝试使用 rowid 将唯一 ID 插入到这个新列中。插入新记录时如何获取rowid。这是在 Progress 数据库中。

INSERT INTO PUB.DETAILS (LASTUPDATED, FORMERVALUE, NEWVALUE, ID) 
VALUES ('09/16/2015', 'NEW ITEM', 'ESISTING ITEM', '?')

【问题讨论】:

  • 如果你让它自动增量而不需要传递它的值
  • @MeerDeen Progress 数据库中没有这样的东西...
  • 顺便说一句,在数据库列中使用 ROWID 或 RECID 存在一个主要的“问题”;这些值的完整性将无法在转储和加载...

标签: sql progress-4gl openedge progress-db


【解决方案1】:

进度数据库不需要密钥。至少不是“SQL方式”。键(以及关系)由业务逻辑定义(即您如何使用字段。

由于您似乎正在使用正在使用的数据库,因此您可能不需要密钥 - 那里已经有某种逻辑可以完成这项工作?

Progress 数据库中有一个叫做“序列”的东西,可以用来增加一个值——我真的不知道如何使用 odbc 或 sql 访问它们。

In Progress ABL (4GL) 你会说NEXT-VALUE(sequence-name)

Here's some help about SQL and Progress dbs.

【讨论】:

    【解决方案2】:

    只需将您的 ID 列设置为自动递增,这样您就不需要知道最后插入的一个。

    【讨论】:

    • 进度数据库没有自动增量。至少据我所知,它们并不是真正的 SQL 数据库。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-08-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多