回答編集履歴

7

訂正

2016/08/31 11:33

投稿

A.Ichi
A.Ichi

スコア4070

test CHANGED
@@ -24,7 +24,7 @@
24
24
 
25
25
  id int PRIMARY KEY,
26
26
 
27
- user_id int NOT NULL REFERENCES "user" ON DELETE CASCADE,
27
+ user_id int NOT NULL REFERENCES "user" (id) ON DELETE CASCADE,
28
28
 
29
29
  name VARCHAR
30
30
 

6

変更

2016/08/31 11:33

投稿

A.Ichi
A.Ichi

スコア4070

test CHANGED
@@ -26,9 +26,7 @@
26
26
 
27
27
  user_id int NOT NULL REFERENCES "user" ON DELETE CASCADE,
28
28
 
29
- name VARCHAR,
29
+ name VARCHAR
30
-
31
- FOREIGN KEY(user_id) REFERENCES "user" (id)
32
30
 
33
31
  );
34
32
 
@@ -38,7 +36,7 @@
38
36
 
39
37
 
40
38
 
41
- 既存テーブルを変更する方法をテストしていましたが、追加(2行目)のみだとエラーにはならないけれど自動削除がうまく行かず、一度FKRY削除後に再度追加すると出来ました(対処法ですけどよろしければ)
39
+ 既存テーブルを変更する方法をテストしていましたが、下記方法で出来ました。FKEY指定は1つので有効でした。既存を削除して新FKRY追加する。
42
40
 
43
41
 
44
42
 
@@ -50,8 +48,6 @@
50
48
 
51
49
    FOREIGN KEY (user_id) REFERENCES "user" (id) ON DELETE CASCADE;
52
50
 
53
- ALTER TABLE "account" ADD FOREIGN KEY(user_id) REFERENCES "user" (id);
54
-
55
51
  ```
56
52
 
57
53
 

5

訂正します

2016/08/31 11:27

投稿

A.Ichi
A.Ichi

スコア4070

test CHANGED
@@ -37,3 +37,23 @@
37
37
  ```
38
38
 
39
39
 
40
+
41
+ 既存テーブルを変更する方法をテストしていましたが、追加(2行目)のみだとエラーにはならないけれど自動削除がうまく行かず、一度FKRY削除後に再度追加すると出来ました。(対処法ですけどよろしければ)
42
+
43
+
44
+
45
+ ```sql
46
+
47
+ ALTER TABLE "account" DROP CONSTRAINT "account_user_id_fkey";
48
+
49
+ ALTER TABLE "account" ADD CONSTRAINT account_user_id_fkey1
50
+
51
+   FOREIGN KEY (user_id) REFERENCES "user" (id) ON DELETE CASCADE;
52
+
53
+ ALTER TABLE "account" ADD FOREIGN KEY(user_id) REFERENCES "user" (id);
54
+
55
+ ```
56
+
57
+
58
+
59
+

4

変更します。

2016/08/31 11:08

投稿

A.Ichi
A.Ichi

スコア4070

test CHANGED
@@ -10,9 +10,29 @@
10
10
 
11
11
  ```sql
12
12
 
13
- ALTER TABLE "account" ADD CONSTRAINT user_id FOREIGN KEY (user_id)
13
+ CREATE TABLE "user" (
14
14
 
15
+ id int PRIMARY KEY,
16
+
17
+ name VARCHAR
18
+
19
+ );
20
+
21
+
22
+
23
+ CREATE TABLE "account" (
24
+
25
+ id int PRIMARY KEY,
26
+
15
- REFERENCES "user" (id) ON DELETE CASCADE;
27
+ user_id int NOT NULL REFERENCES "user" ON DELETE CASCADE,
28
+
29
+ name VARCHAR,
30
+
31
+ FOREIGN KEY(user_id) REFERENCES "user" (id)
32
+
33
+ );
34
+
35
+
16
36
 
17
37
  ```
18
38
 

3

変更

2016/08/31 10:29

投稿

A.Ichi
A.Ichi

スコア4070

test CHANGED
@@ -10,7 +10,9 @@
10
10
 
11
11
  ```sql
12
12
 
13
- ALTER TABLE "account" ADD CONSTRAINT user_id FOREIGN KEY (user_id) REFERENCES "user" (id);
13
+ ALTER TABLE "account" ADD CONSTRAINT user_id FOREIGN KEY (user_id)
14
+
15
+ REFERENCES "user" (id) ON DELETE CASCADE;
14
16
 
15
17
  ```
16
18
 

2

追加

2016/08/31 09:31

投稿

A.Ichi
A.Ichi

スコア4070

test CHANGED
@@ -5,3 +5,13 @@
5
5
  子テーブルのFkeyを持つ項目(user_id?)に,REFERENCES user ON DELETE CASCADE,
6
6
 
7
7
  設定すれば、親テーブルを削除すると子テーブルが自動的に削除されます。
8
+
9
+
10
+
11
+ ```sql
12
+
13
+ ALTER TABLE "account" ADD CONSTRAINT user_id FOREIGN KEY (user_id) REFERENCES "user" (id);
14
+
15
+ ```
16
+
17
+

1

変更

2016/08/31 09:26

投稿

A.Ichi
A.Ichi

スコア4070

test CHANGED
@@ -4,4 +4,4 @@
4
4
 
5
5
  子テーブルのFkeyを持つ項目(user_id?)に,REFERENCES user ON DELETE CASCADE,
6
6
 
7
- 設定すれば、自動的に削除されます。
7
+ 設定すれば、親テーブルを削除すると子テーブルが自動的に削除されます。