0

これは私のSQLスクリプトです

CREATE TABLE account_profile
(
accnt_id int NOT NULL ,
first_name varchar(255),
last_name varchar(255),
biography varchar(255),
date_joined DATE,
country varchar(255),
gender varchar(255),
screename varchar(255),
path varchar(255),
FOREIGN KEY (accnt_id) REFERENCES accounts(id)
)

それは私にこのエラーSQLクエリを与え続けました:

CREATE TABLE ac

MySQL は次のように述べています。

#1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '' at line 1 

これは具体的にどういう意味ですか?私は何をすべきか?私の観点からは、スクリプトはまったく問題ありませんが、エラーの場所を特定することはできません

4

3 に答える 3

3

InnoDB エンジンを使用していることを確認してください。他のエンジンは外部キーをサポートしていません。

CREATE TABLE account_profile
(
...
) ENGINE = INNODB;

また、列が のデータ型と正確にaccount_profile.accnt_id一致するかどうかも確認してください。accounts.id2 番目の列にはインデックスが定義されている必要があります (主キーで十分です)。

于 2012-06-28T07:53:23.173 に答える
3

私はあなたのクエリをテストしましたが、それも私と一緒に動作します。テーブルを作成する前にクエリはありますaccount_profileか? その場合は、前のクエリがセミコロンで終了しているかどうかを確認してください。このような:

Create table TableName
(
    -- fields list
);  -- <== don't forget this before creating another table again.

CREATE TABLE account_profile
(
    accnt_id int NOT NULL ,
    first_name varchar(255),
    last_name varchar(255),
    biography varchar(255),
    date_joined DATE,
    country varchar(255),
    gender varchar(255),
    screename varchar(255),
    path varchar(255),
    FOREIGN KEY (accnt_id) REFERENCES accounts(id)
);  -- <== and also this.

エラーは1行目の近くにあると言っています。

于 2012-06-28T08:00:57.773 に答える
2

おそらくあなたのテーブルaccountは存在しません:

FOREIGN KEY (accnt_id) REFERENCES accounts(id)

それがエラーが発生した理由です。それ以外の場合、リクエストは正しいです。

于 2012-06-28T07:49:30.180 に答える