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

質問編集履歴

2

DDL修正

2020/04/17 05:37

投稿

tera78
tera78

スコア9

title CHANGED
File without changes
body CHANGED
@@ -27,11 +27,11 @@
27
27
  datetime3 datetime NOT NULL,
28
28
  datetime4 datetime NOT NULL,
29
29
  hoge3 varchar(50) NOT NULL,
30
- hoge4 int NOT NULL COMMENT,
30
+ hoge4 int NOT NULL,
31
31
  hoge5 int NOT NULL,
32
32
  hoge6 varchar(255),
33
- hoge7 int NOT NULL COMMENT,
33
+ hoge7 int NOT NULL,
34
- hoge8 int NOT NULL COMMENT,
34
+ hoge8 int NOT NULL,
35
35
  hoge9 int NOT NULL,
36
36
  datetime5 datetime NOT NULL,
37
37
  datetime6 datetime NOT NULL,
@@ -64,10 +64,10 @@
64
64
  hoge19 varchar(255),
65
65
  hoge20 varchar(255),
66
66
  hoge21 varchar(255),
67
- hoge22 tinyint unsigned NOT NULL COMMENT,
67
+ hoge22 tinyint unsigned NOT NULL,
68
- hoge23 tinyint unsigned COMMENT,
68
+ hoge23 tinyint unsigned,
69
- hoge24 tinyint unsigned DEFAULT 0 NOT NULL COMMENT,
69
+ hoge24 tinyint unsigned DEFAULT 0 NOT NULL,
70
- hoge25 tinyint unsigned COMMENT,
70
+ hoge25 tinyint unsigned,
71
71
  hoge26 datetime NOT NULL,
72
72
  hoge27 datetime NOT NULL,
73
73
  PRIMARY KEY (id2)

1

DDLと発行したINSERT文です

2020/04/17 05:37

投稿

tera78
tera78

スコア9

title CHANGED
File without changes
body CHANGED
@@ -10,4 +10,84 @@
10
10
  ```
11
11
  ちなみに上記の'389871'はエラーの出たINSERTの数時間前に登録されたレコードなので、ほぼ同時にINSERTしてエラーになったというわけでもありません。またしばらくおいて再度INSERTすると成功しました。
12
12
 
13
- 恐らくAUTO_INCREMENTの採番値が更新されていなかったのだと思いますが、そのような事は発生するのでしょうか?また発生しやすい状況等ありましたらご教授頂くと幸いです。
13
+ 恐らくAUTO_INCREMENTの採番値が更新されていなかったのだと思いますが、そのような事は発生するのでしょうか?また発生しやすい状況等ありましたらご教授頂くと幸いです。
14
+
15
+ **** 追記 ****
16
+ DDLとINSERT文です(※カラム名や値は変えています)
17
+ test2テーブルのINSERTで、AI_IDの重複でエラーになります。
18
+ ```
19
+ -- DDL
20
+ CREATE TABLE test
21
+ (
22
+ id int NOT NULL AUTO_INCREMENT,
23
+ hoge1 varchar(10) NOT NULL,
24
+ hoge2 varchar(10) NOT NULL,
25
+ datetime1 datetime NOT NULL,
26
+ datetime2 datetime NOT NULL,
27
+ datetime3 datetime NOT NULL,
28
+ datetime4 datetime NOT NULL,
29
+ hoge3 varchar(50) NOT NULL,
30
+ hoge4 int NOT NULL COMMENT,
31
+ hoge5 int NOT NULL,
32
+ hoge6 varchar(255),
33
+ hoge7 int NOT NULL COMMENT,
34
+ hoge8 int NOT NULL COMMENT,
35
+ hoge9 int NOT NULL,
36
+ datetime5 datetime NOT NULL,
37
+ datetime6 datetime NOT NULL,
38
+ PRIMARY KEY (id)
39
+ ) ENGINE = InnoDB;
40
+
41
+ CREATE TABLE test2
42
+ (
43
+ AI_ID int NOT NULL AUTO_INCREMENT,
44
+ id int NOT NULL,
45
+ id2 varchar(50),
46
+ hoge10 varchar(255) CHARACTER SET ascii,
47
+ hoge11 varchar(10),
48
+ hoge12 int,
49
+ datetime1 datetime NOT NULL,
50
+ datetime2 datetime NOT NULL,
51
+ PRIMARY KEY (AI_ID),
52
+ CONSTRAINT uq_test2_01 UNIQUE (id, id2, hoge10)
53
+ ) ENGINE = InnoDB;
54
+
55
+ CREATE TABLE test3
56
+ (
57
+ id2 varchar(50) NOT NULL,
58
+ hoge13 text NOT NULL,
59
+ hoge14 varchar(255) NOT NULL,
60
+ hoge15 tinyint unsigned,
61
+ hoge16 varchar(255),
62
+ hoge17 date,
63
+ hoge18 varchar(255),
64
+ hoge19 varchar(255),
65
+ hoge20 varchar(255),
66
+ hoge21 varchar(255),
67
+ hoge22 tinyint unsigned NOT NULL COMMENT,
68
+ hoge23 tinyint unsigned COMMENT,
69
+ hoge24 tinyint unsigned DEFAULT 0 NOT NULL COMMENT,
70
+ hoge25 tinyint unsigned COMMENT,
71
+ hoge26 datetime NOT NULL,
72
+ hoge27 datetime NOT NULL,
73
+ PRIMARY KEY (id2)
74
+ ) ENGINE = InnoDB;
75
+
76
+ ALTER TABLE test2
77
+ ADD FOREIGN KEY (id)
78
+ REFERENCES test (id)
79
+ ON UPDATE RESTRICT
80
+ ON DELETE RESTRICT
81
+ ;
82
+
83
+ ALTER TABLE test2
84
+ ADD FOREIGN KEY (id2)
85
+ REFERENCES test3 (id2)
86
+ ON UPDATE RESTRICT
87
+ ON DELETE RESTRICT
88
+ ;
89
+
90
+ -- INSERT文
91
+ insert into test2(id, id2, hoge10, hoge11, hoge12, datetime1, datetime2)
92
+ values(211, 'id2', 'hoge10', 'hoge11', null, NOW(), NOW());
93
+ ```