为了账号安全,请及时绑定邮箱和手机立即绑定

我想知道我这写的没有问题 ,可是为什么会报错,求大佬解答

CREATE TABLE users(

    -> id SMALLINT UNSIGNED PRIMARY KEY AUTO_INCREMENT,

    -> username varchar(10) NOT NULL,

    -> pid SAMLLINT UNSIGNED,

    -> FOREIGN KEY (pid) REFERENCES provinces (id)

    -> );

ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'SAMLLINT UNSIGNED,

FOREIGN KEY (pid) REFERENCES provinces (id)

)' at line 4


正在回答

3 回答


//父表

CREATE TABLE province(

    -> id SMALLINT UNSIGNED PRIMARY KEY AUTO_INCREMENT,

    -> name VARCHAR(30) NOT NULL

    -> );

//子表

CREATE TABLE users(

    -> id SMALLINT UNSIGNED PRIMARY KEY AUTO_INCREMENT,

    -> name VARCHAR(30) NOT NULL,

    -> pid SMALLINT UNSIGNED ,

    -> FOREIGN KEY(pid) REFERENCES province(id)

    -> );


如果代码没有问题,检查一下两张表的存储引擎是否一致。

SHOW CREATE TABLE  表名

查看ENGINE的属性

1 回复 有任何疑惑可以回复我~

SMALLINT写错了

0 回复 有任何疑惑可以回复我~

外键列的数据类型和参照列的数据类型是否一致?符号位是否一致?

1 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消
与MySQL的零距离接触
  • 参与学习       396886    人
  • 解答问题       3353    个

本课程涵盖全部MySQL数据库的基础,学习MySQL数据库的基础知识

进入课程

我想知道我这写的没有问题 ,可是为什么会报错,求大佬解答

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信