为啥我这里一直报错150呢

不知道为啥一直报错150,查了资料也没弄明白是啥原因,这是按照以前的写的往上填也不行

img


```sql
CREATE TABLE XSB (
    xh VARCHAR ( 20 ) PRIMARY KEY,
    xm VARCHAR ( 20 ) NOT NULL,
    xb ENUM('男','女'),
    jg VARCHAR ( 20 ),
    bj VARCHAR ( 20 ) DEFAULT'241期',
    nl INT NOT NULL,
    sfzh CHAR ( 18 ) UNIQUE,
  zcrq TIMESTAMP DEFAULT CURRENT_TIMESTAMP
)DEFAULT charset = utf8;

create table kcb(
kch int PRIMARY KEY,
kcm VARCHAR(20)
);

CREATE TABLE cjb(
xh VARCHAR(20),
FOREIGN KEY (xh) REFERENCES xsb(xh),
kch int,
FOREIGN KEY (kch)REFERENCES kcb(kch),
cj int not null,
primary key(xh,kch)
);

```


CREATE TABLE XSB (
    xh VARCHAR ( 20 ) PRIMARY KEY,
    xm VARCHAR ( 20 ) NOT NULL,
    xb ENUM('男','女'),
    jg VARCHAR ( 20 ),
    bj VARCHAR ( 20 ) DEFAULT'241',
    nl INT NOT NULL,
    sfzh CHAR ( 18 ) UNIQUE,
  zcrq TIMESTAMP DEFAULT CURRENT_TIMESTAMP
)charset = utf8;

create table kcb(
kch int PRIMARY KEY,
kcm VARCHAR(20)
)charset = utf8;

CREATE TABLE cjb(
xh VARCHAR(20),
FOREIGN KEY (xh) REFERENCES xsb(xh),
kch int,
FOREIGN KEY (kch)REFERENCES kcb(kch),
cj int not null
)charset = utf8;

这样就可以了,原因好像是字符集设置的不一致

把你这图里的代码以代码块的方式贴出来一下,方便回答的人去测试