1

私はテーブル構造を持っています

ID | 列1 | col2
 1 | 1 | val1
 2 | 2 | val2
 3 | 3 | val3 --
 4 | 4 | val4
 5 | 5 | val1
 6 | 6 | val6

行の1つ(たとえばid = 3)を削除するために削除アクションを実行したいので、データは次のようになります。

ID | 列1 | col2
 1 | 1 | val1
 2 | 2 | val2
 4 | 4 | val4
 5 | 5 | val1
 6 | 6 | val6

しかし、私はそれが好きであることを望みます

ID | 列1 | col2
 1 | 1 | val1
 2 | 2 | val2
 4 | 3 | val4
 5 | 4 | val1
 6 | 5 | val6

他の列に関係なく、col1 を常に順番に並べたいと思います。それをどうやって進めるかについての提案。1 回の更新クエリでのみ実行できますか。データベースとして POSTGRESQL を使用し、コーディングには C# を使用しています。データベースには約1000行あります。ここで私を助けてください。

4

3 に答える 3

2

1 日 1 回などのスケジュールされた操作の場合、その順序付けられた列を保持できます。それを取り除かない場合は、クエリでそれを行います:

select
    id,
    row_number() over(order by id) col1,
    col2
from t
于 2013-06-06T11:52:54.637 に答える