1

私は6 列のテーブルMyTable
を持っています: 私が書くとき: select * from MyTable 私はこの結果を得る

名前 | LAST_NAME | FIRST_NAME | 年齢 | 給与 | ID


私が望むのは、それらの順序を変更することです.IDを緯度ではなく最初にしたいです

例: クエリ select * from MyTable を作成すると、結果は次のようになります。

ID | 名前 | LAST_NAME | FIRST_NAME | 年齢 | 給料

なぜこれが必要なのですか?: このテーブルには、挿入したものを取得するプロシージャがあり、パーサーを使用して別のクエリを作成します。
例: id =1 および name = stack および last_name =over を挿入すると、パーサーは次のようになり
ます:
そもそもなぜそれが必要なのか自問してみては?
IDが最初にあると考える開発者が20人以上いるからです。
列IDを変更しようとしたときにすべてが始まったので、それを削除して列を再度作成し、制約を追加してNULLをNOT NULLに変更する必要がありました。削除する前に、データを一時列に入れました。データを失いませんでした。しかし、私が見なかったことの1つは、列の順序です。
開発者にその変更について話すだけでいいのですが、そうすると、どうやって、なぜそれをしたのか、多くの質問をされます。誰にも知られたくない(できれば)

私の考えている解決策の 1 つは、正しい行を含む新しいテーブルを作成することです。しかし、プロシージャ、トリガーはドロップされ、そのテーブルに再度追加する必要があり、テーブルの再作成で新しい問題が発生するのではないかと心配しています。

4

1 に答える 1

2

*次のように、必要な順序で列を指定します。

select ID, NAME, LAST_NAME, FIRST_NAME, AGE, SALARY  from MyTable

列を並べ替える必要がある場合は、ビューを作成します。

create view MyView as
  select ID, NAME, LAST_NAME, FIRST_NAME, AGE, SALARY  from MyTable

それselect * from MyViewはあなたが望むものを返すでしょう。

*便利なショートカットです。明示的ではないため、テーブルで列が追加または削除されたときにエラーが発生しやすくなります。本番コードで使用するのは良くありません。

別のテーブルを作成しないでください。複雑すぎます。

于 2013-06-13T18:08:49.957 に答える