質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

ただいまの
回答率

90.49%

  • Linux

    3887questions

    Linuxは、Unixをベースにして開発されたオペレーティングシステムです。日本では「リナックス」と呼ばれています。 主にWebサーバやDNSサーバ、イントラネットなどのサーバ用OSとして利用されています。 上位500のスーパーコンピュータの90%以上はLinuxを使用しています。 携帯端末用のプラットフォームAndroidは、Linuxカーネル上に構築されています。

  • Ubuntu

    1478questions

    Ubuntuは、Debian GNU/Linuxを基盤としたフリーのオペレーティングシステムです。

  • PostgreSQL

    1097questions

    PostgreSQLはオープンソースのオブジェクトリレーショナルデータベース管理システムです。 Oracle Databaseで使われるPL/SQLを参考に実装されたビルトイン言語で、Windows、 Mac、Linux、UNIX、MSなどいくつものプラットフォームに対応しています。

Postgresqlのboardの名前を変更したいです。

解決済

回答 2

投稿

  • 評価
  • クリップ 0
  • VIEW 215

American

score 33

リンク内容
環境はLinuxのubuntuです。 
上のサイトで

INSERT INTO boards (board, display_name) VALUES ('board1', 'Board 1');
INSERT INTO boards (board, display_name) VALUES ('board2', 'Board 2');


このboardの名前を変更したいのですが、どうすれば変えられますか? 

  • 気になる質問をクリップする

    クリップした質問は、後からいつでもマイページで確認できます。

    またクリップした質問に回答があった際、通知やメールを受け取ることができます。

    クリップを取り消します

  • 良い質問の評価を上げる

    以下のような質問は評価を上げましょう

    • 質問内容が明確
    • 自分も答えを知りたい
    • 質問者以外のユーザにも役立つ

    評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

    質問の評価を上げたことを取り消します

  • 評価を下げられる数の上限に達しました

    評価を下げることができません

    • 1日5回まで評価を下げられます
    • 1日に1ユーザに対して2回まで評価を下げられます

    質問の評価を下げる

    teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

    • プログラミングに関係のない質問
    • やってほしいことだけを記載した丸投げの質問
    • 問題・課題が含まれていない質問
    • 意図的に内容が抹消された質問
    • 広告と受け取られるような投稿

    評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

    質問の評価を下げたことを取り消します

    この機能は開放されていません

    評価を下げる条件を満たしてません

    評価を下げる理由を選択してください

    詳細な説明はこちら

    上記に当てはまらず、質問内容が明確になっていない質問には「情報の追加・修正依頼」機能からコメントをしてください。

    質問の評価を下げる機能の利用条件

    この機能を利用するためには、以下の事項を行う必要があります。

質問への追記・修正、ベストアンサー選択の依頼

  • m6u

    2018/06/20 20:11

    エラーメッセージからすると、テーブルpostsとテーブルboardsが外部キーforeign keyの設定で連携しているようなので、関係するテーブルすべて構造を質問文中ですべて説明しないと、質問者さんが満足する回答になりません。

    キャンセル

  • American

    2018/06/20 21:37

    テーブルの構造はサイトに載ってる通りのもので、いじくったりしていません。難しいことかもしれませんがお願いします!

    キャンセル

  • Orlofsky

    2018/06/24 20:30

    質問のタイトルを「テーブルのカラム名を変更したい」に修正されては?boardがカラム名だと理解している人にしか理解できないタイトルです。この仕事はいっしょに作業しているメンバーにわかり易いドキュメントを提供できる能力があるとあなたを高く評価してくれます。

    キャンセル

回答 2

checkベストアンサー

0

データの変更にはupdateを使用します。

update boards set board='変更後の文字', display_name='変更後の文字'
where board='board1' and display_name='Board 1'
;
update boards set board='変更後の文字', display_name='変更後の文字'
where board='board2' and display_name='Board 2'
;

件数が少ないようでしたら、DBツールを使用して直接手入力で修正も可能です。
postgresの標準ツールのpgadminでしたら、テーブルを選択して右クリック(データビュー→すべての列を表示)で表示された画面で、表示したい箇所をクリックすると変更が可能です。

投稿

編集

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2018/06/20 18:21 編集

    simplech_db-# update boards set board='Anime & Manga', display_name='Anime & Manga' where board='board1' and display_name='Board 1';
    と入力したら
    EROR: synax error at or near "update"
    と表示されます。

    キャンセル

  • 2018/06/20 18:34

    全角空白などが含まれていないか確認して下さい・

    キャンセル

  • 2018/06/20 18:39

    また、入力しなおしたら
    ERROR: duplicate key value violates unique constraint "boards_pkey"
    DETAIL: Key (board)=(Anime & Manga) already exists.
    と表示されます。

    キャンセル

  • 2018/06/20 18:54

    truncate table文でテーブル内のデータをすべて消して、イチから入れ直したらいいんじゃないでしょうか。

    キャンセル

  • 2018/06/20 19:03

    truncate table board1と入力して削除して
    最初の
    INSERT INTO boards (board, display_name) VALUES ('Anime & Manga', 'Anime & Manga');
    と入れればいいんでしょうか?

    キャンセル

  • 2018/06/20 19:06

    Yes! Yes! Yes!

    キャンセル

  • 2018/06/20 19:08 編集

    だめです。入力してもさっきとおんなじです

    キャンセル

  • 2018/06/20 19:38

    truncate table [テーブル名];
    なので、正しくは
    truncate table boards;
    ですね。
    board1のレコードだけを削除するのは
    delete boards where board = 'board1' and and display_name='Board 1';
    になるかと。
    ちゃんと消えたかどうかを確認するには、
    select count(*) from boards;
    でレコード数が少なくなればOK.
    truncate table文を実行するとレコード数はゼロになります。

    キャンセル

  • 2018/06/20 19:39

    ごめん、自分の回答の方に書き加えますね。

    キャンセル

  • 2018/06/20 19:47

    truncate table boards; 
    と入力したら
    ERROR: cannot truncate a table referenced in a foreign key constraint
    DETAIL: Table "posts" references "boards".
    HINT: Truncate table "posts" at the same time, or use TRUNCATE ... CASCADE.
    と表示されました。

    キャンセル

  • 2018/06/20 20:09

    外部キー制約が付いているようです。
    関係しているテーブルも同様に修正する必要があるので、いったん外部キー制約を外して修正ですね。

    キャンセル

  • 2018/06/20 21:34

    どうやってはずすんですか?
    できれば、実際に入力するコマンドを教えてください。

    キャンセル

  • 2018/06/20 21:37

    テーブルの関係が明らかでないと具体的な説明はできません。
    Simplechanを具体的に知っている人じゃないと回答はできないと思います。

    キャンセル

  • 2018/06/20 21:38

    ということは、この問題は解決できないということですか?,,,,,,,,

    キャンセル

  • 2018/06/20 21:42 編集

    Americanさんがテーブル関係の情報を追記されない限りは、
    知っている人若しくは奇特な人が現れないと、他力での解決は難しいでしょうね。
    作者に直接問い合わせされるのも手だと思いますが。

    キャンセル

  • 2018/06/20 21:45

    わかりました。アドバイスありがとうございます!

    キャンセル

  • 2018/06/20 21:49 編集

    Simplechanは知りませんが、質問のデータは掲示板のサンプルデータだと思われます。
    多分、画面操作であれば変更できるのじゃないかと思いますけど。

    キャンセル

  • 2018/06/20 21:56

    それはもしかして、simplechan/app/app/templates/mod_login.html ですか?
    https://w.w.w.ドメイン_mod_login
    と入力したら、パスワードを求められるのですがパスワードは設定した覚えもないし知らないので、入れません。もしかして、これでしょうか?

    キャンセル

  • 2018/06/20 22:10 編集

    いえ、分かりません。Simplechanの具体的なことは知りません。
    ログインできていないことも知りませんでしたし。
    別なサイトでも色々質問されて解決されていないようですし、作者へ問合せされた方が良いかと思います。
    もし、外国語に不安があるなら、試しに日本語で出されてみては?
    日本語ができる方かもしれませんし、出来なくても頑張って日本語で回答してくれるかもしれませんよ。
    ただ、Simplechanを利用されようとしている事が正当な事かどうかは当方は分かっておりませんが。

    キャンセル

  • 2018/06/20 22:43

    githubの作者にどうやって連絡を取ればいいのでしょうか?調べてみたのですが、いまいちよくわからないので。

    キャンセル

  • 2018/06/20 23:13

    アドバイスになればと思ってコメントしただけですので、すみません分かりません。

    キャンセル

  • 2018/06/21 21:11

    わかりました。ありがとうございます。

    キャンセル

0

ALTER TABLE文でしょうね。

ALTER TABLE boards 
RENAME COLUMN board TO 新しい名前;

ただしロールの権限不足で失敗する場合もあるので、
その時は権限の強いユーザーで実施すると。


サンプルデータでテーブルboardsにデータ格納したけどデータを直したい、
という意図だと思って回答を直します。

サンプルデータとしてテーブルboardsに格納されているデータをすべて削除して、
はじめからINSERT INTO文でデータを格納していったほうが
解決が早い気がします。

truncate table boards;
を実行すれば、テーブルboardsに格納されているデータはすべて削除されます。
レコード数はゼロになりますので、重複キーのエラーなどなく
INSERT INTO文が実行できます。

以下、リファレンス:
TRUNCATE

他のテーブルと外部キーforeign keyの関係性を持っているために削除できなくなっているようなので、
truncate table boards cascade;
とします。
しかし、これによってテーブルpostsにも影響が出て、別の問題が生じる可能性があります。
情報があまりに不足のため、問題が生じるのか生じないのかもこちらでは判断できません。
回答する側も、質問者さんが提供する情報の上でどうすれば解決するのか考えるので、
なにか大前提になっていること(例えばフレームワークやライブラリを使っているとか)も併せて記載してくれないと、
目先の問題解決のために行う対策によって、さらなる問題や障害が発生しうるところまで予見できません。

・データベースの構造を第三者が把握できるための情報。
・関係するテーブルのデータを使って、どんな処理を行うのか、その先の事柄。

投稿

編集

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2018/06/20 18:47

    サイトで表示されるboard1 とboard2 の名前を変更したいのですが、これはテーブル名ですよね?説明不足ですいません。

    キャンセル

  • 2018/06/20 18:52

    boards テーブルのカラム board という名称を別のに変える方法、という意味での回答です。
    どうやら質問意図と違うようですね。

    キャンセル

  • 2018/06/20 18:55

    すいません。質問の説明不足でした。上のsaziさんの方法で行っているのですが
    ERROR: duplicate key value violates unique constraint "boards_pkey"
    DETAIL: Key (board)=(Anime & Manga) already exists.
    と表示されてできません。どうすればできるでしょうか?

    キャンセル

15分調べてもわからないことは、teratailで質問しよう!

  • ただいまの回答率 90.49%
  • 質問をまとめることで、思考を整理して素早く解決
  • テンプレート機能で、簡単に質問をまとめられる

関連した質問

  • 解決済

    mysqlのdatetime型について

    mysqlを学んで日が浅い者です. 初心者なためお見苦しい点あるとは思いますがよろしくお願い致します. create table `users`( `id` int u

  • 解決済

    mysqlでinsertするとERROR 1064(42000)がでてしまう

    mysqlでinsertすると、ERROR 1064が出てしまい、原因がわかりません。 どなたか理由を教えて頂けないでしょうか。 下記create文とinsert文を実行し

  • 解決済

    PHPのDBについて

    DBの勉強のため、書籍を読んでコードを書いているのですがうまく動きません tableの番号、商品名、単価は表示されるのですがその下が表示できません なぜでしょうか <?p

  • 解決済

    投稿掲示板

    前提・実現したいこと ここに質問したいことを詳細に書いてください 投稿後、投稿した内容を追加で表示したいです 現在は投稿後エラーがでてしまいます。 発生している問題・エ

  • 解決済

    Azureで使用しているClearDBのsql_modeを変更したい

    前提・実現したいこと MySQLとPHPでウェブサービスを開発しています。 ローカルからMicrosoftAzureのサーバーにアップロードするとデータベースのauto_inc

  • 解決済

    [WordPress] MySQL経由でDBに直接タグを追加したら既存のタグが消えてしまった

     分からないこと termsテーブル terms_taxonomyテーブル term_relationshipsテーブル この順番でデータをインサートしました。 一応、イ

  • 解決済

    insert(インサート)が反映されません。

    javaからインサート文を実行するのですが、データベースに反映されていません。 どこが間違っているかご教授お願いいたします。 コードJSP <%@ page language=

  • 解決済

    Postgresqlでboard(データ)がINSERTできません。

    https://github.com/blobmon/communicate 環境はLinuxでPostgreSQLです。 上のboardを追加するのができません。 INSER

同じタグがついた質問を見る

  • Linux

    3887questions

    Linuxは、Unixをベースにして開発されたオペレーティングシステムです。日本では「リナックス」と呼ばれています。 主にWebサーバやDNSサーバ、イントラネットなどのサーバ用OSとして利用されています。 上位500のスーパーコンピュータの90%以上はLinuxを使用しています。 携帯端末用のプラットフォームAndroidは、Linuxカーネル上に構築されています。

  • Ubuntu

    1478questions

    Ubuntuは、Debian GNU/Linuxを基盤としたフリーのオペレーティングシステムです。

  • PostgreSQL

    1097questions

    PostgreSQLはオープンソースのオブジェクトリレーショナルデータベース管理システムです。 Oracle Databaseで使われるPL/SQLを参考に実装されたビルトイン言語で、Windows、 Mac、Linux、UNIX、MSなどいくつものプラットフォームに対応しています。