4

このクエリをFilemaker->MySQL移行スクリプトで使用しようとしています。テーブルの作成手順はphpMyAdminエクスポートから直接行われ、DROPステートメントに追加しました。

アーティファクトが存在する場合はテーブルを削除します。

存在しない場合はテーブルを作成する`アーティファクト`
  ((
     `aid` INT(11)UNSIGNED NOT NULL auto_increment、
     `アクセッション番号`TEXTNOT NULL、
     `name` TEXT NOT NULL、
     `期間1`TEXTNOT NULL、
     `期間3の日付`TEXTNOT NULL、
     `視覚的な説明`TEXTNOT NULL、
     `宗教1`TEXTNOT NULL、
     `dimen 1 number` DECIMAL(10、2)NOT NULL、
     `dimen 2 number` DECIMAL(10、2)NOT NULL、
     `dimen 3 number` DECIMAL(10、2)NOT NULL、
     `dimen 1 type` TEXT NOT NULL、
     `dimen 2 type` TEXT NOT NULL、
     `dimen 3 type` TEXT NOT NULL、
     `materials 2` TEXT NOT NULL、
     `製造プロセス2`TEXTNOT NULL、
     `weight` INT(11)NOT NULL、
     `測定コメント`TEXTNOT NULL、
     `マンセル色情報`TEXTNOT NULL、
     `複製`TEXTNOT NULL、
     `複製ノート`TEXTNOT NULL、
     `公開された説明`TEXTNOT NULL、
     `学術ノート`TEXTNOT NULL、
     `参考文献`TEXTNOT NULL、
     `comparanda` TEXT NOT NULL、
     `展示ラベル`TEXTNOT NULL、
     `artist` TEXT NOT NULL、
     `spurlock loc 3` TEXT NOT NULL、
     `考古学的データ`TEXTNOT NULL、
     `クレジットライン`TEXTNOT NULL、
     `来歴`TEXTNOT NULL、
     `美術館の献身`TEXTNOT NULL、
     `スパーロックステータス`TEXTNOT NULL、
     `公開説明`TEXTNOT NULL、
     `ワーキングセット5wb`TEXT NOT NULL、
     `画像ソース`TEXTNOT NULL、
     `cm mec ma` TEXT NOT NULL、
     `webprivate` TEXT NOT NULL、
     `spurlock loc 2` TEXT NOT NULL、
     `hiresimagecheck` TEXT NOT NULL、
     主キー( `aid`)、
     フルテキストキー`name`(` name`)、
     フルテキストキー`アクセッション番号`(`アクセッション番号`、 `名前`、`期間1`、
     「視覚的説明」、「資料2」、「公開された説明」、「アーティスト」、
     `クレジットライン`)、
     フルテキストキー`アクセッション番号_2`(`アクセッション番号`)、
     フルテキストキー`視覚的説明`(`視覚的説明`)、
     フルテキストキー`公開された説明`(`公開された説明`)
  )。
engine = myisam
DEFAULT charset = latin1
auto_increment = 1;

文化が存在する場合はテーブルを削除します。

存在しない場合はテーブルを作成する`culture`
  ((
     `cid` INT(10)UNSIGNED NOT NULL auto_increment、
     `culture` VARCHAR(255)NOT NULL、
     主キー( `cid`)、
     ユニークキー`文化`(`文化`)
  )。
engine = myisam
DEFAULT charset = latin1
auto_increment = 1;

geocityが存在する場合はテーブルを削除します。

存在しない場合はテーブルを作成する`geocity`
  ((
     `gid` INT(10)UNSIGNED NOT NULL auto_increment、
     `city` VARCHAR(255)NOT NULL、
     主キー( `gid`)、
     ユニークキー`city`(` city`)
  )。
engine = myisam
DEFAULT charset = latin1
auto_increment = 1;

ジオコンティネントが存在する場合はテーブルを削除します。

存在しない場合はテーブルを作成する`geocontinent`
  ((
     `gid` INT(10)UNSIGNED NOT NULL auto_increment、
     `大陸`VARCHAR(255)NOT NULL、
     主キー( `gid`)、
     ユニークキー`大陸`(`大陸`)
  )。
engine = myisam
DEFAULT charset = latin1
auto_increment = 1;

ジオカントリーが存在する場合はテーブルを削除します。

存在しない場合はテーブルを作成する`geocountry`
  ((
     `gid` INT(10)UNSIGNED NOT NULL auto_increment、
     `country` VARCHAR(255)NOT NULL、
     主キー( `gid`)、
     UNIQUE KEY `country`(` country`)
  )。
engine = myisam
DEFAULT charset = latin1
auto_increment = 1;

ジオローカリティが存在する場合はテーブルを削除します。

存在しない場合はテーブルを作成する`geolocality`
  ((
     `gid` INT(10)UNSIGNED NOT NULL auto_increment、
     `locality` VARCHAR(255)NOT NULL、
     主キー( `gid`)、
     ユニークキー`locality`(` locality`)
  )。
engine = myisam
DEFAULT charset = latin1
auto_increment = 1;

ジオリージョンが存在する場合はテーブルを削除します。

存在しない場合はテーブルを作成する`georegion`
  ((
     `gid` INT(10)UNSIGNED NOT NULL auto_increment、
     `region` VARCHAR(255)NOT NULL、
     主キー( `gid`)、
     ユニークキー`region`(` region`)
  )。
engine = myisam
DEFAULT charset = latin1
auto_increment = 1;

nomcategoryが存在する場合はテーブルを削除します。

存在しない場合はテーブルを作成する`nomcategory`
  ((
     `nid` INT(10)UNSIGNED NOT NULL auto_increment、
     `category` VARCHAR(255)NOT NULL、
     主キー( `nid`)、
     UNIQUE KEY `category`(` category`)
  )。
engine = myisam
DEFAULT charset = latin1
auto_increment = 1;

nomclassificationが存在する場合はテーブルを削除します。

存在しない場合はテーブルを作成する`nomclassification`
  ((
     `nid` INT(10)UNSIGNED NOT NULL auto_increment、
     `分類`VARCHAR(255)NOT NULL、
     主キー( `nid`)、
     ユニークキー`分類`(`分類`)
  )。
engine = myisam
DEFAULT charset = latin1
auto_increment = 1;

DROP TABLE IF EXISTS nomsubclassification;

存在しない場合はテーブルを作成する`nomsubclassification`
  ((
     `nid` INT(10)UNSIGNED NOT NULL auto_increment、
     `subclassification` VARCHAR(255)NOT NULL、
     主キー( `nid`)、
     UNIQUE KEY `subclassification`(` subclassification`)
  )。
engine = myisam
DEFAULT charset = latin1
auto_increment = 1;

ただし、このクエリを実行しようとすると、次のようになります。

MySQLエラー:SQL構文にエラーがあります。MySQLサーバーのバージョンに対応するマニュアルで、「CREATE TABLE IF NOTEXISTS`artifacts」の近くで使用する正しい構文を確認してください。
  ((
     3行目の`aid`IN'

構文はすべて私には良さそうですが、誰かがエラーを見つけることができますか?私が使用している唯一のSQLフォーマッターはエラーを報告しません。

4

2 に答える 2

7

スクリプトは正常に機能します。問題は、実行方法(クライアントはスクリプト全体ではなくクエリごとのクエリを期待する)か、区切り文字を以外のものに変更したかです。;

DELIMITER ;
于 2012-08-17T16:36:16.657 に答える
-1
  1. ユーザー名にはテーブルを作成する権限がありますか?
  2. 使用するデータベースを指定しましたか?私は通常します

    USE databasename;
    
    CREATE TABLE tablename (
    name_id INT UNSIGNED NOT NULL AUTO_INCREMENT,
     (etc....)
    );
    

于 2012-08-17T16:36:34.223 に答える