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

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

新規登録して質問してみよう
ただいま回答率
85.48%
PostgreSQL

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

Linux

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

Ubuntu

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

Q&A

解決済

2回答

1485閲覧

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

退会済みユーザー

退会済みユーザー

総合スコア0

PostgreSQL

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

Linux

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

Ubuntu

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

0グッド

0クリップ

投稿2018/06/20 02:24

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

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

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

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

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

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

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

CHERRY

2018/06/20 03:51 編集

board の名前とは、質問に書かれている SQL 文の カラム名の `board` のことですか? 値の `board1` や `board2` のことですか?
退会済みユーザー

退会済みユーザー

2018/06/20 07:01

board1とboard2のことです!!
退会済みユーザー

退会済みユーザー

2018/06/20 08:05

テーブルのカラム名を変更したいのではなく、テーブルに収められているデータを変更したい、だと?
退会済みユーザー

退会済みユーザー

2018/06/20 09:23

サイトに表示されるboard名を変更したいという意味なんですが,,,,,,,,
退会済みユーザー

退会済みユーザー

2018/06/20 10:05

現在のテーブルboards の構造をCREATE TABLE文で示せないでしょうか。例えばpsql内コマンドなら、\d boardsって入力すると構造が表示されます。
退会済みユーザー

退会済みユーザー

2018/06/20 10:10

そのあとにどうすればいいのでしょうか?
退会済みユーザー

退会済みユーザー

2018/06/20 11:11

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

退会済みユーザー

2018/06/20 12:37

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

2018/06/24 11:30

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

回答2

0

ベストアンサー

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

SQL

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

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

投稿2018/06/20 08:00

編集2018/06/20 08:07
sazi

総合スコア25195

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

退会済みユーザー

退会済みユーザー

2018/06/20 09:25 編集

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" と表示されます。
sazi

2018/06/20 09:34

全角空白などが含まれていないか確認して下さい・
退会済みユーザー

退会済みユーザー

2018/06/20 09:39

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

退会済みユーザー

2018/06/20 09:54

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

退会済みユーザー

2018/06/20 10:03

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

退会済みユーザー

2018/06/20 10:06

Yes! Yes! Yes!
退会済みユーザー

退会済みユーザー

2018/06/20 10:28 編集

だめです。入力してもさっきとおんなじです
退会済みユーザー

退会済みユーザー

2018/06/20 10: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 10:39

ごめん、自分の回答の方に書き加えますね。
退会済みユーザー

退会済みユーザー

2018/06/20 10: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. と表示されました。
sazi

2018/06/20 11:09

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

退会済みユーザー

2018/06/20 12:34

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

2018/06/20 12:37

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

退会済みユーザー

2018/06/20 12:38

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

2018/06/20 12:46 編集

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

退会済みユーザー

2018/06/20 12:45

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

2018/06/20 12:49 編集

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

退会済みユーザー

2018/06/20 12:56

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

2018/06/20 13:10 編集

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

退会済みユーザー

2018/06/20 13:43

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

2018/06/20 14:13

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

退会済みユーザー

2018/06/21 12:11

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

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 02:30

編集2018/06/21 00:32
退会済みユーザー

退会済みユーザー

総合スコア0

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

退会済みユーザー

退会済みユーザー

2018/06/20 09:47

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

退会済みユーザー

2018/06/20 09:52

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

退会済みユーザー

2018/06/20 09:55

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問