ERROR: duplicate key value violates unique constraint "boards_pkey"　エラーが出て捜査ができません。


<https://github.com/blobmon/simplechan>  
上のサイトを一通り終えて、サイトに表示されるboard1 の名前を"Anime & Manga"変更しようと思ってデータベースに入った後に

[code]

    simplech_db-# update boards set board='Anime & Manga', display_name='Anime & Manga' where board='board1' and display_name='Board 1';
    
[/code]

と入力したのですが

[code]

    ERROR: duplicate key value violates unique constraint "boards_pkey"
    
[/code]

[code]

    DETAIL: Key (board)=(Anime & Manga) already exists.
    
[/code]

と表示されてできません。  
また、一度消してやろうと思って

[code]

    truncate table boards;
    
[/code]

と入力したら

[code]

    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.
    
[/code]

と表示されました。どうやったら、できますか？




まず、メッセージを理解しましょう。  
「ERROR: duplicate key value violates unique constraint "boards_pkey"」  
重複したキーの値は、boardsテーブルの主キーはユニークでなければならないという制約に反しています。  
「DETAIL: Key (board)=(Anime & Manga) already exists.」  
キー boardの値が、”Anime & Manga”であるレコードは既に存在しています。

「どうやったら、できますか？」  
既にある、boardの値が、”Anime & Manga”であるレコードを削除してください。  
そうすれば、boardの値を”Anime & Manga”に変更してもキーの重複が起こりません。

