teratail header banner
teratail header banner
質問するログイン新規登録

回答編集履歴

1

中期

2019/02/22 05:57

投稿

yambejp
yambejp

スコア117944

answer CHANGED
@@ -3,4 +3,44 @@
3
3
  ↓↓↓
4
4
  ```
5
5
  NOT NULL,
6
- ```
6
+ ```
7
+
8
+ # 追記
9
+ 一応考え方だけ
10
+ - charsetはDBのデフォルト
11
+ - TABLEのデフォルト
12
+ - カラム
13
+
14
+ が指定できます。
15
+ 仮にdbのデフォルトをlatin1だとすると
16
+ ```SQL
17
+ create database testdb charset latin1;
18
+ ```
19
+
20
+ ```SQL
21
+ create table user1(
22
+ id int,
23
+ val1 varchar(10)
24
+ );
25
+ ```
26
+ 上記tableのデフォルトcharsetも
27
+ カラムval1のcollateはlatin系のものになります
28
+
29
+ ```SQL
30
+ create table user2(
31
+ id int,
32
+ val1 varchar(10) charset utf8
33
+ );
34
+ ```
35
+ 個別にカラムにchasetをしておけばtableのデフォルトがlatin1でも
36
+ 任意のchasetを指定できます
37
+
38
+ ```SQL
39
+ create table user3(
40
+ id int,
41
+ val1 varchar(10),
42
+ val2 varchar(10) charset sjis
43
+ ) charset utf8;
44
+ ```
45
+ 最終的にはdbのデフォルトとtableのデフォルト、カラムはすべてバラバラに指定もできます。
46
+ val1はtableのデフォルトを引き継ぎ、val2は任意のcharset