繁体   English   中英

这个 MySQL 命令有什么问题?

[英]What's wrong with this MySQL command?

有人可以告诉我出了什么问题吗?

CREATE TABLE IF NOT EXISTS ifm.LinksTable (
  file_system_id SMALLINT NOT NULL ,
  inode_number BIGINT AUTO_INCREMENT  ,
  parent_inode_number BIG INT  ,
  virtual_name VARCHAR(256)  , 
  UNIQUE INDEX (parent_inode_number, virtual_name, file_system_id),
  inode_type CHAR(1) ,
  symbolic_link_inode BIGINT DEFAULT 0 ,
  current_version_number SMALLINT DEFAULT 0 ,
  number_of_links_to_file SMALLINT DEFAULT 0 ,
  PATH  varchar(1000),
  dir_level  INT ,
  time_last_modified INT ,
  time_last_accessed INT ,
  time_last_changed INT ,
  created_date INT ,
  permissions INT ,
  uid INT ,
  gid INT ,
  deleted_flag CHAR(1) , 
  PRIMARY KEY(file_system_id, inode_number)
);

错误是:

ERROR 1064 (42000):您的 SQL 语法有错误; 检查与您的 MySQL 服务器版本相对应的手册,了解在第 1 行的 'BIG INT ,virtual_name VARCHAR(256) , UNIQUE INDEX (parent_inode_number, virtua') 附近使用的正确语法

请考虑我是 MySQL 命令的新手,但了解 SQL。

这就是 MySQL def 文件的样子,我向其中添加了级别 a 和路径

cat ifmLinksTable.mysqldef
file_system_id,smallint not null
inode_number,bigint auto_increment
parent_inode_number,bigint
virtual_name,varchar(256) , unique index (parent_inode_number, virtual_name, file_system_id)
inode_type,char(1)
symbolic_link_inode,bigint default 0
current_version_number,smallint default 0
number_of_links_to_file,smallint default 0
time_last_modified,int
time_last_accessed,int
time_last_changed,int
created_date,int
permissions,int
uid,int
gid,int
deleted_flag,char(1), primary key(file_system_id, inode_number)

它应该是BIGINT ,没有空间,但不BIG INT

CREATE TABLE IF NOT EXISTS ifm.LinksTable (
  file_system_id SMALLINT NOT NULL ,
  inode_number BIGINT AUTO_INCREMENT  ,
  parent_inode_number BIGINT  ,
  virtual_name VARCHAR(256)  , 
  UNIQUE INDEX (parent_inode_number, virtual_name, file_system_id),
  inode_type CHAR(1) ,
  symbolic_link_inode BIGINT DEFAULT 0 ,
  current_version_number SMALLINT DEFAULT 0 ,
  number_of_links_to_file SMALLINT DEFAULT 0 ,
  PATH  varchar(1000),
  dir_level  INT ,
  time_last_modified INT ,
  time_last_accessed INT ,
  time_last_changed INT ,
  created_date INT ,
  permissions INT ,
  uid INT ,
  gid INT ,
  deleted_flag CHAR(1) , 
  PRIMARY KEY(file_system_id, inode_number)
);

我看到一些错误:parent_inode_number BIG INT => parent_inode_number BIGINT(只是一些错字^^),另一个是 VARCHAR:VARCHAR 最大值是 255 所以 VARCHAR(256) 和 VARCHAR(1000) 是不可能的

希望我有所帮助!

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM