SQLite3: テーブル内の列を並べ替えるにはどうすればいいですか? 質問する

SQLite3: テーブル内の列を並べ替えるにはどうすればいいですか? 質問する

SQLite3 テーブル内の列を並べ替えるのは簡単ではないようです。少なくとも Firefox の SQLite マネージャーはこの機能をサポートしていません。たとえば、列 2 を列 3 に移動し、列 5 を列 2 に移動します。SQLite 管理ソフトウェアまたはスクリプトを使用して、SQLite テーブル内の列を並べ替える方法はありますか?

ベストアンサー1

これは、どの DBMS でも簡単な作業ではありません。必要な順序で新しいテーブルを作成し、データを 1 つのテーブルからその順序に移動する必要があることはほぼ確実です。列を並べ替えるための alter table ステートメントは存在しないため、sqlite マネージャーでも他の場所でも、同じテーブルでこれを行う方法は見つかりません。

本当に順序を変更したい場合は、次のようにします。

tableA があると仮定します:

create table tableA(
col1 int,
col3 int,
col2 int);

列を希望どおりに並べ替えた tableB を作成できます。

create table tableB(
col1 int,
col2 int,
col3 int);

次に、データを tableA から tableB に移動します。

insert into tableB
SELECT col1,col2,col3 
FROM tableA;

次に、元の tableA を削除し、tableB の名前を TableA に変更します。

DROP table tableA;
ALTER TABLE tableB RENAME TO tableA;

sqlfiddle demo

おすすめ記事