0

私は mysql_error() から以下を取得しています:

SQL 構文にエラーがあります。使用する正しい構文については、MySQL サーバーのバージョンに対応するマニュアルを確認してください。

私もこのようなことを試しました:

'assets' ('assetid' INT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY,

...しかし、運が悪い。mysql のバージョンは 5.0.7 です。

編集:

実は、入れる前に(')抜きで試してみました。コードは動的ですが、これらは例です:

CREATE TABLE 'assets' (
   'assetid' INT UNSIGNED NOT NULL AUTO_INCREMENT, 
    PRIMARY KEY('assetid'),
    'rfid' VARCHAR( 128 ) ,
    'createddate' DATE ,
    'modifieddate' DATE ,
    'curlocid' INT( 11 ) ,
    'type' VARCHAR( 128 ) ,
    'brand' VARCHAR( 128 ) ,
    'name' VARCHAR( 128 ) ,
    'condition' VARCHAR( 128 ) 
);

編集2:

ちょうど今、すべてのシングル クォーテーション ( ' ) をバック ティック ( ` ) で変更しようとしました。他のエラーが発生しました。

テーブル 'mydb.assets' を作成できません (エラー番号: 121)

これは良いですか悪いですか?

編集3:

別のテーブル名を使用して作成しようとしましたが、何だと思いますか? できます!おやおや、テーブル名「assets」を作成できないのはなぜですか?? 前の操作の残りがあるからですか?? もしそうなら、私はそれをきれいにする方法?? ファイルを削除してテーブルを削除すると言ったらどうなりますか??(frm、myd、myi)(怠惰のため、削除しないでください)..どうすれば修正できますか?

4

4 に答える 4

1

すべてのコードを表示すると便利です。

私が見ているものに基づいて、これらすべてのダニを排除する必要があります。これはうまくいくはずです:

create table assets ( 
      assetid  int unsigned not null auto_increment primary key 
);

MySQL Server 5.5でこれをうまく実行しました

于 2011-04-15T04:02:08.697 に答える
1

ここで何が起こっているのかわかりませんが、コードをコピーして貼り付けて同じエラーが発生したので、行ごとにコピーしても、本来あるべき場所で壊れていたので、行ごとに入力しました少しいじる必要がありましたしかし、予約語である可能性がある「条件」を除いて、それを取得しましたが、短縮しました

create table assets ( 
     assetid  int unsigned not null auto_increment,
    primary key(assetid),
    rfid varchar(128),
    createddate DATE,
    modifieddate DATE,
    curlocid INT(11),
    type varchar(128),
    brand varchar(128),
    name varchar(128),
    cond varchar(128)
);
于 2011-04-15T05:05:00.957 に答える
0

テーブル名や列名を引用するときは、一重引用符 (') の代わりにバックティック (`) を使用する必要があると思います。

于 2011-04-15T03:57:53.953 に答える
0

この質問は古いですが、これを解決する方法について答えを教えてください。誰かがそれに遭遇した場合..この場合、使用されるのはデフォルトのENGINEです。私が使用しているサーバー(Z-WAMP)がINNODBをデフォルトのエンジンとして構成していることに今まで気づきませんでした。mysql のデフォルト エンジンである MyISAM に変更した後、すべてが完全に動作します!! しかし、私を助けてくれた人たちに感謝します..

このファイル --> my.cnf で、次の行を変更します。

default-storage-engine=MyISAM
于 2011-04-18T02:39:31.517 に答える