1

おはよう、

私はMySqlWorkbenchを使用して私のデータベースをいくつか作成していますが、この月曜日から問題は発生していません。

私がモデルを「ForwardEngeneer」しているのですが、ここにいるこの人を除いて、すべてのテーブルは問題なく作成されています。

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')」行に示している点が異なります。

よろしくお願いします!

サム

4

2 に答える 2

3

INDEX DIRECTORY = '1'インデックスディレクトリは有効なディレクトリを参照する必要があります。

于 2013-01-30T10:26:27.467 に答える
1

問題はINDEXDIRECTORYオプションにあるようです。それはファイルを指している必要があります。テーブル作成の完全な構文マニュアルについては、https://dev.mysql.com/doc/refman/5.5/en/create-table.htmlを参照してください。

そのページのINDEXDIRECTORYに関する章:

DATA DIRECTORY='directory'またはINDEXDIRECTORY='directory'を使用すると、MyISAMストレージエンジンがテーブルのデータファイルとインデックスファイルを配置する場所を指定できます。ディレクトリは、相対パスではなく、ディレクトリへのフルパス名である必要があります。

これらのオプションは、-skip-symbolic-linksオプションを使用していない場合にのみ機能します。オペレーティングシステムには、スレッドセーフなrealpath()呼び出しも必要です。詳細については、8.11.3.1.2項「UnixでのMyISAMテーブルへのシンボリックリンクの使用」を参照してください。

MyISAMテーブルがDATADIRECTORYオプションなしで作成された場合、.MYDファイルはデータベースディレクトリに作成されます。デフォルトでは、この場合、MyISAMが既存の.MYDファイルを見つけると、それを上書きします。同じことが、INDEXDIRECTORYオプションなしで作成されたテーブルの.MYIファイルにも当てはまります。この動作を抑制するには、サーバーを--keep_files_on_createオプションで起動します。この場合、MyISAMは既存のファイルを上書きせず、代わりにエラーを返します。

MyISAMテーブルがDATADIRECTORYまたはINDEXDIRECTORYオプションを使用して作成され、既存の.MYDまたは.MYIファイルが見つかった場合、MyISAMは常にエラーを返します。指定されたディレクトリ内のファイルは上書きされません。

于 2013-01-30T10:25:34.770 に答える