MySql错误1103

MySql错误1103,mysql,mysql-workbench,Mysql,Mysql Workbench,早上好 我正在使用MySql Workbench创建我的一些数据库,从本周一开始我就没有遇到过问题 当我在“向前工程”我的模型时,所有的表都是毫无问题地创建的,除了这里的这个家伙: Executing SQL script in server ERROR: Error 1103: Incorrect table name '1' CREATE TABLE IF NOT EXISTS `sigemV2`.`macro` ( `MACRO_ID` INT(11) NOT NULL AUTO_

早上好

我正在使用MySql Workbench创建我的一些数据库,从本周一开始我就没有遇到过问题

当我在“向前工程”我的模型时,所有的表都是毫无问题地创建的,除了这里的这个家伙:

Executing SQL script in server
ERROR: Error 1103: Incorrect table name '1'

CREATE  TABLE IF NOT EXISTS `sigemV2`.`macro` (
  `MACRO_ID` INT(11) NOT NULL AUTO_INCREMENT ,
  `MACRO_ADDRESS` VARCHAR(255) NOT NULL ,
  `MACRO_DESCRIPTION` VARCHAR(255) NOT NULL ,
  `MACRO_MACRO_KIND_ID` INT(11) NOT NULL ,
  PRIMARY KEY (`MACRO_ID`) ,
  INDEX `fk_MACRO_MACRO_KIND1_idx` (`MACRO_MACRO_KIND_ID` ASC) ,
  CONSTRAINT `MACRO_KIND_ID`
    FOREIGN KEY (`MACRO_MACRO_KIND_ID` )
    REFERENCES `sigemV2`.`macrokind` (`MACRO_KIND_ID` )
    ON DELETE NO ACTION
    ON UPDATE NO ACTION)
ENGINE = InnoDB
AUTO_INCREMENT = 1
DEFAULT CHARACTER SET = utf8
INDEX DIRECTORY = '1'
我非常习惯MySql工作台,但这让我发疯:(

我也尝试了phpMyAdmin,但是我有相同的错误(1103),但不同的是phpMyAdmin将问题指向了“主键('MACRO_ID')”行

我提前感谢你的帮助


Sam

问题似乎出在索引目录选项中。该选项必须指向一个文件。 有关创建表的完整语法手册,请参阅

该页中有关索引目录的章节:

通过使用DATA DIRECTORY='DIRECTORY'或INDEX DIRECTORY='DIRECTORY',您可以指定MyISAM存储引擎应将表的数据文件和索引文件放在何处。目录必须是目录的完整路径名,而不是相对路径

这些选项仅在不使用--skip symbolic links选项时有效。您的操作系统还必须具有线程安全的realpath()调用。有关详细信息,请参阅第8.11.3.1.2节“在Unix上为MyISAM表使用符号链接”

如果创建MyISAM表时没有数据目录选项,则会在数据库目录中创建.MYD文件。默认情况下,如果MyISAM在本例中找到现有的.MYD文件,则会覆盖该文件。对于创建的表,没有索引目录选项的.MYI文件也是如此。若要抑制此行为,请使用--keep_files_on_c启动服务器创建选项,在这种情况下,MyISAM不会覆盖现有文件,而是返回一个错误

如果使用数据目录或索引目录选项创建MyISAM表,并且找到现有的.MYD或.MYI文件,MyISAM将始终返回错误。它不会覆盖指定目录中的文件


问题似乎出在索引目录选项中。该选项必须指向一个文件。 有关创建表的完整语法手册,请参阅

该页中有关索引目录的章节:

通过使用DATA DIRECTORY='DIRECTORY'或INDEX DIRECTORY='DIRECTORY',您可以指定MyISAM存储引擎应将表的数据文件和索引文件放在何处。目录必须是目录的完整路径名,而不是相对路径

这些选项仅在不使用--skip symbolic links选项时有效。您的操作系统还必须具有线程安全的realpath()调用。有关详细信息,请参阅第8.11.3.1.2节“在Unix上为MyISAM表使用符号链接”

如果创建MyISAM表时没有数据目录选项,则会在数据库目录中创建.MYD文件。默认情况下,如果MyISAM在本例中找到现有的.MYD文件,则会覆盖该文件。对于创建的表,没有索引目录选项的.MYI文件也是如此。若要抑制此行为,请使用--keep_files_on_c启动服务器创建选项,在这种情况下,MyISAM不会覆盖现有文件,而是返回一个错误

如果使用数据目录或索引目录选项创建MyISAM表,并且找到现有的.MYD或.MYI文件,MyISAM将始终返回错误。它不会覆盖指定目录中的文件


INDEX DIRECTORY='1'
索引目录必须引用有效目录。

INDEX DIRECTORY='1'
索引目录必须引用有效目录。

感谢Tobias快速回答我的问题!我删除了“索引目录”选项,并生成了数据库。我希望这不会带来更多问题:)。再次感谢您!托拜厄斯,谢谢你对我问题的快速回答!我从.sql文件中删除了“index directory”选项,并生成了数据库。我希望这不会带来更多问题:)。再次感谢您!哈姆雷特,谢谢你对我问题的快速回答!我从.sql文件中删除了“index directory”选项,并生成了数据库。我希望这不会带来更多问题:)。再次感谢您!哈姆雷特,谢谢你对我问题的快速回答!我从.sql文件中删除了“index directory”选项,并生成了数据库。我希望这不会带来更多问题:)。再次感谢您!O