回答編集履歴

1

中期

2019/02/22 05:57

投稿

yambejp
yambejp

スコア114835

test CHANGED
@@ -9,3 +9,83 @@
9
9
  NOT NULL,
10
10
 
11
11
  ```
12
+
13
+
14
+
15
+ # 追記
16
+
17
+ 一応考え方だけ
18
+
19
+ - charsetはDBのデフォルト
20
+
21
+ - TABLEのデフォルト
22
+
23
+ - カラム
24
+
25
+
26
+
27
+ が指定できます。
28
+
29
+ 仮にdbのデフォルトをlatin1だとすると
30
+
31
+ ```SQL
32
+
33
+ create database testdb charset latin1;
34
+
35
+ ```
36
+
37
+
38
+
39
+ ```SQL
40
+
41
+ create table user1(
42
+
43
+ id int,
44
+
45
+ val1 varchar(10)
46
+
47
+ );
48
+
49
+ ```
50
+
51
+ 上記tableのデフォルトcharsetも
52
+
53
+ カラムval1のcollateはlatin系のものになります
54
+
55
+
56
+
57
+ ```SQL
58
+
59
+ create table user2(
60
+
61
+ id int,
62
+
63
+ val1 varchar(10) charset utf8
64
+
65
+ );
66
+
67
+ ```
68
+
69
+ 個別にカラムにchasetをしておけばtableのデフォルトがlatin1でも
70
+
71
+ 任意のchasetを指定できます
72
+
73
+
74
+
75
+ ```SQL
76
+
77
+ create table user3(
78
+
79
+ id int,
80
+
81
+ val1 varchar(10),
82
+
83
+ val2 varchar(10) charset sjis
84
+
85
+ ) charset utf8;
86
+
87
+ ```
88
+
89
+ 最終的にはdbのデフォルトとtableのデフォルト、カラムはすべてバラバラに指定もできます。
90
+
91
+ val1はtableのデフォルトを引き継ぎ、val2は任意のcharset