不知道为啥一直报错150,查了资料也没弄明白是啥原因,这是按照以前的写的往上填也不行
```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;
这样就可以了,原因好像是字符集设置的不一致
把你这图里的代码以代码块的方式贴出来一下,方便回答的人去测试