我在Docker容器中有一个MySQL数据库。入口点执行创建数据库的脚本和创建表的脚本。
除了一张桌子,其他所有东西都工作正常。
use db; ... creating other tables CREATE TABLE mediametadata ( id bigint not null primary key, title VARCHAR not NULL, artist VARCHAR not NULL, album VARCHAR, releaseYear bigint, mediaId bigint NOT NULL, constraint fk__pk_metadata_objectid foreign key (id) references objectid (id), constraint fk__metadata_media_id foreign key (mediaId) references media (id) ) ;
记录到控制台的错误是
mysql_1 | ERROR 1064 (42000) at line 150: 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 'not NULL, mysql_1 | artist VARCHAR not NULL, mysql_1 | album VARCHAR, mysql_1 | releaseYear bigint, mysql_1 | mediaId bi' at line 4
第150行是后面的开括号 CREATE TABLE mediametadata
CREATE TABLE mediametadata
我开始考虑year并且metadata可能是保留关键字,因此我重命名了表和year列,但错误仍然存在。
year
metadata
@Bill Karwin在第一条评论中回答Varchar需要长度[Varchar(number)]