• ベストアンサー

文字列の拡張

maroの回答

  • ベストアンサー
  • maro
  • ベストアンサー率47% (95/199)
回答No.1

PostgreSQLの場合、カラム名のリネームはできたと思いますが、型の変更はできなかったと思います。 方法としてはpg_dumpをつかっていったんデータベースの内容をテキストファイルにはき出させ、そのテキストファイルのcreate tableの部分を編集して、データベースを再構築するほかないと思います。

MAGI
質問者

お礼

返事が遅れまして、すみませんでした まさに、そのとおりです。 ありがとうございました。

関連するQ&A

  • 項目長変更後の処理について教えてください。

    項目名:コード varchar (3) を "ALTER TABLE テーブル名 ALTER COLUMN コード varchar (4);"を実行し 項目名:コード varchar (4)へ変更したいと思っています。 そこで質問なんですが現在コード の内容が"001"のような3桁なのですがそれを"0001"のように4桁に変更したいのです。(頭に"0"を追加する。) (一見づつ読んで更新していく方法はわかりますがもう少しスマートに処理がしたいので) どういったSQL文を発行すれば良いのでしょうか? よろしくお願いします。

  • PostgreSQLの「not null」制約の追加

    こんにちは。いつもお世話になります。 PostgreSQLのversion7.2.8で、「not null」制約の追加、削除の方法をおたずねします。よろしくお願いします。 ALTER TABLE テーブル名 ALTER COLUMN カラム名 SET NOT NULL; で試したところ、syntaxエラー(構文エラー)で失敗。 ALTER TABLE テーブル名 ALTER COLUMN カラム名 DROP NOT NULL; で試してみても、同じくsyntaxエラーです。 version7.2.8が原因でしょうか? また、version7.2.8でも「not null」制約の追加、削除が できる他の方法はありますでしょうか? テーブルを作り直さずに、 既存のテーブルのカラムへの制約の追加、削除をしようとしています。 よろしくお願いします。

  • MySQLで、テーブル内のフィールドの名前を変えたいのですが・・・

    MySQL4.0.20 Linuxを使っています。 テーブル内のフィールドの名前を変えたいのですが、alter table の modifyはカラムの属性を変えるもので、名前を変えるのは運用途中でできるのかなと、ふと疑問に思いました。 alter tableなどでできるのでしょうか? 結局サーバーを止めて、バックアップし、テーブル定義を書き直して、リストアするしか無いのでしょうか?

    • ベストアンサー
    • MySQL
  • 数字のカンマ区切りの文字列を分解したい

    SQLのみで以下の様なことをしたいのですが、やり方が分かりません。 何かしら手法をお知りの方はご教授願いたく存じます。 ▼Postgresバージョン 8.1 ▼テーブル情報 id, numbers 1, '0,20,10,30,50' 2, '10,20,30,50,60' ↓ numbers の値をカンマ( , )で分解し、加算したい。 例)  '0,20,10,30,50' → 0 + 20 + 10 + 30 + 50 → INTEGERの 110 を取得 ※regexp_split_to_table の関数は、postgresのバージョンが古いために使用できませんでした。 postgresのバージョンを上げる事が出来ないため、8.1でも可能な対応方法を模索しています。

  • NULLと ''の判定について、アドバイスを下さい。

    初心者で、いつもお世話になっております。 今、要件定義からデータベース設計を行ってます。 ORACLEのカラムではnullと''と言う概念は無かったのですが、 Postgres上では、Nullと''は別ものと言う事で、 CREATE TABLE文でVarcharのものを「''」でデフォルト設定した方が、 今後、開発する上で楽になるのでしょうか? なにか良い案があれば、参考程度にアドバイスしていただけると幸いです・・・

  • カラム名の付け方について

    このジャンルでお願いします。 例えば次のようなアカウント情報を格納するテーブルがあったとして CREATE TABLE user (  id int(11) NOT NULL AUTO_INCREMENT,  name varchar(64),  email varchar(64),  password varchar(64),  PRIMARY KEY(id) ); idカラム名を「id」か「user_id」にするか悩んでいます。 自分としては「id」のままで良いと思っているのですが、 参考書や他の方のやり方を見てると「user_id」のようにしてる方もいます。 「user_id」にすることによってSQL文を見た時にも何のidかすぐ分かるし、 USING句を使えるなどのメリットがあるのでたしかにこちらの方が良いかなぁとは思うのですが、 「user_id」にするなら統一性をもたせるために「name」も「user_name」にするのか、 「email」も「user_email」にするのか、などキリがないというか・・・ そういう理由もあって自分としては「id」のままなのですが、 みなさんはどちらのやり方をされているのでしょうか?

  • ACCESS 1クエリでの複数ALTER文

    ACCESS2007で複数テーブルのカラム属性を一括して変更したいのですが、1クエリで複数のALTER文は実行できないのでしょうか? 構文エラーで停止してしまいます。 ALTER TABLE TBL_ID1 ALTER COLUMN SEQ INTEGER; ALTER TABLE TBL_ID2 ALTER COLUMN SEQ INTEGER; どなたか御教え願えないでしょうか。

  • MySQL データベースを選択したい

    こんにちは。 SQLの初歩的な操作で躓いています。 MySQL 3.23.51-nt (WondowsXP) を使用しています。 PHPベースの掲示板を作成していまして、次の一連の作業をしたいのですが、 ALTER TABLE phpbb_categories ADD cat_main_type CHAR(1); ALTER TABLE phpbb_categories ADD cat_main MEDIUMINT(8) UNSIGNED DEFAULT '0' NOT NULL; ALTER TABLE phpbb_categories ADD cat_desc TEXT NOT NULL; ALTER TABLE phpbb_forums ADD forum_link VARCHAR(255); ALTER TABLE phpbb_forums ADD forum_link_internal TINYINT(1) NOT NULL; ALTER TABLE phpbb_forums ADD forum_link_hit_count TINYINT(1) NOT NULL; ALTER TABLE phpbb_forums ADD forum_link_hit BIGINT(20) UNSIGNED NOT NULL; ALTER TABLE phpbb_users ADD user_sub_forum TINYINT(1) DEFAULT '1' NOT NULL; ALTER TABLE phpbb_users ADD user_split_cat TINYINT(1) DEFAULT '1' NOT NULL; ALTER TABLE phpbb_users ADD user_last_topic_title TINYINT(1) DEFAULT '1' NOT NULL; ALTER TABLE phpbb_users ADD user_sub_level_links TINYINT(1) DEFAULT '2' NOT NULL; ALTER TABLE phpbb_users ADD user_display_viewonline TINYINT(1) DEFAULT '2' NOT NULL; 上記をを打ち込んでもError 1046: No Database Selected と言われます。 そこでどのようにしてデータベースを選択する事が出来るのでしょうか? よろしくお願いいたします。

  • SQL 照会を実行出来ない

    以下の照会を実行しようとしました。 mysql> alter table products_description add products_scientific varchar(255); すると、以下のようなエラーメッセージが出ます。 実行した SQL 照会: mysql & gt;  (& gt;はこのサイトの文字化けではなくこのように出ます。) ALTER TABLE products_description ADD products_scientific varchar( 255 ) MySQLのメッセージ --> #1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'mysql> alter table products_description add products_scientific varchar(255)' at line 1 「>」が文字化けしているようなので「エンコーディングを変換する」の3つをそれぞれ試してみましたが変化無しです。 どのようにしたら良いでしょうか?

    • ベストアンサー
    • MySQL
  • 【DB2】VARCHAR拡張時のデータへの影響について

    alterコマンドを用いて、Varcharで指定しているカラムのサイズを拡張する際の考慮点について質問させてください。 カラムのサイズを拡張する際に、格納されているデータへ何か影響しますでしょうか。 カラムのサイズを拡張する前にデータをexportし拡張後にデータをインポートするべきか、それとも単に拡張するだけか迷っています。 どなたかご教授お願いいたします。 【使用DB】DB2 V8 以上、よろしくお願いいたします。