回答編集履歴

2

調整

2022/02/07 06:42

投稿

yambejp
yambejp

スコア114845

test CHANGED
@@ -11,7 +11,13 @@
11
11
  foreign key(chk) references chk(num) on delete cascade);
12
12
 
13
13
  insert ignore into tbl(id,val) values
14
+ (1,'abc'),
15
+ (2,'abcde'),
16
+ (3,'abcdef'),
14
- (1,'abc'),(2,'abcde'),(3,'abcdef'),(4,'abcdefghijk');
17
+ (4,'abcdefghijk'),
18
+ (5,'あいう'),
19
+ (6,'あいうえお'),
20
+ (7,'あいうえおか');
15
21
  ```
16
22
  ※6文字以上の文字が投入されるとchkカラムが6になり、
17
23
  外部キー制約でエラーとなってinsertが取り消されます

1

2022/02/07 06:41

投稿

yambejp
yambejp

スコア114845

test CHANGED
@@ -7,7 +7,7 @@
7
7
  insert into chk values(0),(1),(2),(3),(4),(5);
8
8
 
9
9
  /* 5文字までならあえて+1して6文字までの制限とする */
10
- create table tbl(id int primary key,val varchar(6),chk int as (length(val)),
10
+ create table tbl(id int primary key,val varchar(6),chk int as (char_length(val)),
11
11
  foreign key(chk) references chk(num) on delete cascade);
12
12
 
13
13
  insert ignore into tbl(id,val) values
@@ -16,3 +16,5 @@
16
16
  ※6文字以上の文字が投入されるとchkカラムが6になり、
17
17
  外部キー制約でエラーとなってinsertが取り消されます
18
18
 
19
+ ※一部調整
20
+