MYSQL for navicat 求指导

图片说明
怎么也找不到错误 求帮助

我也不知道会有这么多错误,最近在学习mysql,这是找一本书上打的代码,我真是醉了,谢谢大家,我觉得我该换本书。

这个格式是错误的。不可以写这样的格式。

char类型默认20,你那一串000000的也没有20个吧

错在第三行,设置的默认值不对。修改下就好了!

 ISBN CHAR(20) CONSTRAINT ISBN_DEF DEFAULT '0000-0000-0-00'

默认值长度应该和字段长度一致 。

或者用VARCHAR类型

 ISBN VARCHAR(20) CONSTRAINT ISBN_DEF DEFAULT '0000-0000-0-00'

应该不能那么写,你可以分开写ISBN VARCHAR(20) DEFAULT '0000-0000-0-00'

alter table <表名> add CONSTRAINT <字段名> unique(<列名>);

先不说你错误在哪里,我先说一个问题啊!首先,我要说的是,在数据库表当中,不建议用约束,不论你是外键约束,还是字段的检索约束,还是字段是否合法的约束,都不建议,这会在很大程度上降低mysql的效率,注意我说的是很大程度上,我们的所有检索完全可以在前端和后台进行,不需要在数据库当中检索,
最后我说下你的这个解决方案,你把所有的char换成varchar就ok了,其实我不建议用char类型,所以让你吧所有的char都换成varchar,或者你把第三行改成char(14),把最后一行改为link'k_____',还是那句话建议用varchar啥事没有