dポイントプレゼントキャンペーン実施中!

no | name | id  というテーブルがあります。

列名 no プライマリーキーにしています。ところがこのnoはオートナンバーではない為、オートナンバー型に変更
しようと以下のコマンドを発行しましたがエラーが出てしまってうまくいきません。

list=# ALTER TABLE server
list-# no SERIAL
list-# ;
ERROR: syntax error at or near "no" at character 20
LINE 2: no SERIAL
^

もし、お分かりになる方がおりました教えていただけませんか?

また、no name id という3つの列があるとしてid と name の順番を入れ替えたいのですがそんな
コマンドってあるのでしょうか?

verはpostgreSQL 8.0.1です。
よろしくお願いします。

A 回答 (1件)

ちょっとバージョンは低いですが、7.1.3で確認しました。


まず、ALTER TABLEでは項目の変更はできないようです。
ALTER TABLE server MODIFY no serial;

parser: parse error at or near "modify"

追加は出来ましたが
alter table server add ser serial;
ALTER

test=> \d server
Table "server"
Attribute | Type | Modifier
-----------+--------------+----------
no | bigint |
name | character(8) |
id | integer |
ser | integer |

integerにしかなりません。

調べてみると、データを退避して
テーブルを作り直して流し込むという方法に
なるそうです。
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!