CREATE TABLE class ( id int NOT NULL PRIMARY KEY, name text NOT NULL ); INSERT INTO class(id,name) VALUES (1,'A組'); INSERT INTO class(id,name) VALUES (2,'B組');
CREATE TABLE person ( id int NOT NULL REFERENCES class(id), number int NOT NULL, name text NOT NULL, PRIMARY KEY (id, number) ); INSERT INTO person(id,number,name) VALUES (1,10,'Cさん'); INSERT INTO person(id,number,name) VALUES (2,10,'Dくん'); INSERT INTO person(id,number,name) VALUES (2,11,'Eくん');
CREATE TABLE info ( id int NOT NULL, number int NOT NULL, info text NOT NULL, FOREIGN KEY (id, number) REFERENCES person (id, number) );
INSERT INTO info(id,number,info) VALUES (1,10,'Cさんの情報1'); INSERT INTO info(id,number,info) VALUES (1,10,'Cさんの情報2'); INSERT INTO info(id,number,info) VALUES (2,10,'Dくんの情報1'); INSERT INTO info(id,number,info) VALUES (2,11,'Eくんの情報1'); /* INSERT INTO info(id,number,info) VALUES (1,11,'外部キー制約でエラー'); */ 0719NAME IS NULL2019/07/04(木) 15:36:31.92ID:???>>718 神様ありがとうございます! 以下の1行をプラスして、完全に想定通りに動きました! >>PRIMARY KEY (id, number)
CREATE TABLE info ( id int NOT NULL, number int NOT NULL, info text NOT NULL, FOREIGN KEY (id, number) REFERENCES person (id, number), PRIMARY KEY (id, number) ); 0720NAME IS NULL2019/07/04(木) 15:58:03.84ID:??? すみません。動いたと思ったら微妙に違っていました。 以下の制約を付けて、正常に動きました! ALTER TABLE info ADD CONSTRAINT info_fkey FOREIGN KEY(id, number) REFERENCES person (id, number) 0721NAME IS NULL2019/07/08(月) 21:33:25.93ID:??? createuser -P -E ロール名 でパスワードを設定しても そのパスワードを要求される場面がない。 CREATE ROLE ロール名 WITH PASSWORD '****'; でもそう。 なんのためのパスワードなんだろう? localhostだけで使うなら無用なのかな。 0722NAME IS NULL2019/07/09(火) 00:12:06.67ID:??? pg_hba.confでtrustになってるとか? 0723NAME IS NULL2019/07/09(火) 10:46:32.59ID:??? pg_hba.confの設定はいじっておらず、 md5かpeerのいずれかです。 trustは一つもありません。 0724NAME IS NULL2019/07/09(火) 12:09:18.95ID:??? peerで認証されてるんだろう LinuxのアカウントとPgのロール名が同じで 0725NAME IS NULL2019/07/09(火) 20:15:55.28ID:???>>724 そうかもしれません。異常な挙動でなくて安心しました。 助言くださってありがとうございました。 07267212019/07/13(土) 14:18:04.22ID:??? pg_hba.confという設定ファイルの中の local all all peer を local all all md5 に変更することでパスワードを指定して作成したロールから localhostのPostgreSQLサーバに接続するときにパスワードを 要求されるようになりました。 0727NAME IS NULL2019/07/16(火) 22:19:30.50ID:??? datdbaseをCREATEする権限をグラントするコマンドを教えてちょうだい 0728NAME IS NULL2019/07/16(火) 22:34:57.39ID:??? まにゅあるよめ 0729NAME IS NULL2019/07/16(火) 22:38:58.77ID:???>>728 マニュアルのURLください 0730NAME IS NULL2019/07/17(水) 20:20:56.33ID:???>>729 mysql.com 0731NAME IS NULL2019/07/19(金) 00:31:07.94ID:??? windowsなのですがまずdvdrental.tarをインポートするやり方からわからないです 教えてください 0732NAME IS NULL2019/07/19(金) 17:48:50.62ID:???>>731 ttps://dev.classmethod.jp/etc/postgresql-create-sample-database/