回答編集履歴

7

qw

2023/05/21 10:38

投稿

退会済みユーザー
test CHANGED
@@ -8,7 +8,7 @@
8
8
  WHERE prefecture = '東京都';
9
9
 
10
10
  ```
11
- これ以上は無理。
11
+ これ以上は無理。(47都道府県名がユニークであるという事実を利用)
12
12
 
13
13
 
14
14
  > INSERT INTO user (user_name,prefecture)

6

2023/05/21 10:37

投稿

退会済みユーザー
test CHANGED
@@ -1,10 +1,18 @@
1
1
  すこしでも短くするなら
2
2
  ```
3
+ INSERT OR IGNORE INTO prefecture (prefecture) VALUES('東京都');
4
+
3
5
  INSERT INTO user (user_name, prefecture_id)
4
6
  SELECT '山田', prefecture_id
5
7
  FROM prefecture
6
8
  WHERE prefecture = '東京都';
9
+
7
10
  ```
11
+ これ以上は無理。
12
+
13
+
14
+ > INSERT INTO user (user_name,prefecture)
15
+ > VALUES ('山田','東京都');
8
16
  > これぐらい簡単な方法で正規化されたDBにデータを追加する方法はありませんか?
9
17
  ありません。
10
18
  別テーブルにある外部キー項目(userにおけるprefacture_idの参照先であるprefactureテーブル内のprefacture)について、キーではない値('東京都')を指定して、主テーブル(user)の項目と "同時に" "直接" 挿入しようとすること自体イレギュラーな行為です。

5

2023/05/21 10:35

投稿

退会済みユーザー
test CHANGED
@@ -1,3 +1,10 @@
1
+ すこしでも短くするなら
2
+ ```
3
+ INSERT INTO user (user_name, prefecture_id)
4
+ SELECT '山田', prefecture_id
5
+ FROM prefecture
6
+ WHERE prefecture = '東京都';
7
+ ```
1
8
  > これぐらい簡単な方法で正規化されたDBにデータを追加する方法はありませんか?
2
9
  ありません。
3
10
  別テーブルにある外部キー項目(userにおけるprefacture_idの参照先であるprefactureテーブル内のprefacture)について、キーではない値('東京都')を指定して、主テーブル(user)の項目と "同時に" "直接" 挿入しようとすること自体イレギュラーな行為です。

4

2023/05/21 10:31

投稿

退会済みユーザー
test CHANGED
@@ -1,6 +1,6 @@
1
1
  > これぐらい簡単な方法で正規化されたDBにデータを追加する方法はありませんか?
2
2
  ありません。
3
- 別テーブルにある外部キー項目(userにおけるprefacture_idの参照先であるprefactureテーブル内のprefacture_name)について、キーではない値('東京都')を指定して、主テーブルの項目と "同時に" "直接" 挿入しようとすること自体イレギュラーな行為です。
3
+ 別テーブルにある外部キー項目(userにおけるprefacture_idの参照先であるprefactureテーブル内のprefacture)について、キーではない値('東京都')を指定して、主テーブル(user)の項目と "同時に" "直接" 挿入しようとすること自体イレギュラーな行為です。
4
4
  イレギュラーな方法をやるのですから、質問文に書いてあるくらいの構文になるのは仕方がないとあきらめてください。(質問文に書いてある構文自体(一番簡単ではないけれども)特に複雑"すぎる"構文とも思えませんが)
5
5
 
6
6
 

3

2023/05/21 10:30

投稿

退会済みユーザー
test CHANGED
@@ -1,6 +1,6 @@
1
1
  > これぐらい簡単な方法で正規化されたDBにデータを追加する方法はありませんか?
2
2
  ありません。
3
- 外部キー項目(userにおけるprefacture)について、キーではない値('東京都')を指定して直接挿入しようとすること自体イレギュラーな方法です。
3
+ 別テーブルにある外部キー項目(userにおけるprefacture_idの参照先であるprefactureテーブル内のprefacture_name)について、キーではない値('東京都')を指定して、主テーブルの項目と "同時に" "直接" 挿入しようとすること自体イレギュラーな行為です。
4
4
  イレギュラーな方法をやるのですから、質問文に書いてあるくらいの構文になるのは仕方がないとあきらめてください。(質問文に書いてある構文自体(一番簡単ではないけれども)特に複雑"すぎる"構文とも思えませんが)
5
5
 
6
6
 

2

2023/05/21 10:27

投稿

退会済みユーザー
test CHANGED
@@ -1,6 +1,6 @@
1
1
  > これぐらい簡単な方法で正規化されたDBにデータを追加する方法はありませんか?
2
2
  ありません。
3
3
  外部キー項目(userにおけるprefacture)について、キーではない値('東京都')を指定して直接挿入しようとすること自体イレギュラーな方法です。
4
- イレギュラーな方法をやるのですから、質問文に書いてあるくらいの複雑な構文になるのは仕方がないとあきらめてください。
4
+ イレギュラーな方法をやるのですから、質問文に書いてあるくらいの構文になるのは仕方がないとあきらめてください。(質問文に書いてある構文自体(一番簡単ではないけれども)特に複雑"すぎる"構文とも思えませんが)
5
5
 
6
6
 

1

2023/05/21 10:26

投稿

退会済みユーザー
test CHANGED
@@ -1,6 +1,6 @@
1
1
  > これぐらい簡単な方法で正規化されたDBにデータを追加する方法はありませんか?
2
2
  ありません。
3
- 外部キー項目(userにおけるprefacture)について、キーではない値('東京都')挿入しようとすること自体イレギュラーな方法です。
3
+ 外部キー項目(userにおけるprefacture)について、キーではない値('東京都')を指定して直接挿入しようとすること自体イレギュラーな方法です。
4
- イレギュラーな方法をやる場合、質問文に書いてあるくらいの複雑な構文になるのは仕方がないとあきらめてください。
4
+ イレギュラーな方法をやるのですから、質問文に書いてあるくらいの複雑な構文になるのは仕方がないとあきらめてください。
5
5
 
6
6