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

テーブルを削除して再作成せずに、Oracleの特定の位置に列を挿入するにはどうすればよいですか?

    アミット-

    テーブルが作成されたら、テーブルの最後以外の場所に列を追加できるとは思いません。 1つの解決策は、これを試すことかもしれません:

    CREATE TABLE MY_TEMP_TABLE AS
    SELECT *
    FROM TABLE_TO_CHANGE;
    

    列を追加するテーブルをドロップします:

    DROP TABLE TABLE_TO_CHANGE;
    

    この時点で、既存のテーブルを最初から再構築して、必要な列を追加できます。この演習では、「COL2andCOL3」という名前の列を追加するとします。

    次に、データを新しいテーブルに挿入し直します。

    INSERT INTO TABLE_TO_CHANGE (COL1, COL2, COL3, COL4) 
    SELECT COL1, 'Foo', 'Bar', COL4
    FROM MY_TEMP_TABLE;
    

    データが「新旧」テーブルに挿入されると、一時テーブルを削除できます。

    DROP TABLE MY_TEMP_TABLE;
    

    これは、特定の場所に列を追加したいときによく行うことです。明らかに、これが生産オンラインシステムである場合、それはおそらく実用的ではありませんが、1つの潜在的なアイデアにすぎません。

    -CJ



    1. TIMEFROMPARTS()SQL Server(T-SQL)の例

    2. MySQLの日時フィールドにNULL値を保存する方法は?

    3. TO_DAYS()の例– MySQL

    4. PostgreSQLの時間値から分を引く