sql >> データベース >  >> RDS >> PostgreSQL

Postgresql-列の番号を付け直します

    注意:

    これは、ac_n_circの場合にのみ意味があります ではありません 主キー列。

    これが必要だと確信している場合(本当にですか?)、次のようなものが機能するはずです:

    with new_numbers as  (
       select row_number() over (order by ac_n_circ) as new_nr,
              ac_n_circ, 
              id
       from foo
    ) 
    update foo
       set ac_n_circ = nn.new_nr
    from new_numbers nn 
     where nn.id = foo.id;
    

    または:

    update foo 
      set ac_n_circ = nn.new_number
    from (
       select id, 
              ac_n_circ,
              row_number() over (order by ac_n_circ) as new_number
       from foo
    ) nn
    where nn.id = foo.id;
    

    どちらのステートメントも、idという名前の主キー列があることを前提としています。 。




    1. 列挙型が持つことができるすべての値を取得するSQLクエリ

    2. WordPressは一度に2つのカスタムフィールドで投稿を注文します

    3. 大規模なmysqlクエリを処理する方法

    4. MySQLがクラッシュし続ける