-6

「Projects」という名前のテーブルを作成しました。このテーブルに外部キー「c_id」を作成したかったのですが、次のエラー メッセージが表示されます。

エラー メッセージを以下に示します。

SQL クエリ:

CREATE TABLE `Projects` (
`p_id` INT( 150 ) NOT NULL AUTO_INCREMENT PRIMARY KEY ,
`project_name` VARCHAR( 500 ) NOT NULL ,
`c_id` INT( 150 ) NOT NULL AUTO_INCREMENT ,
INDEX ( `c_id` )
) ENGINE = MYISAM

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

#1075 - テーブル定義が正しくありません。自動列は 1 つしか存在できず、キーとして定義する必要があります

その背後にある理由は何ですか?何か助けはありますか?

事前にt​​hnx....

4

4 に答える 4

4

あなたは2つ持っていauto_incrementます。代わりにこれを試してください:

CREATE TABLE Projects( 
    p_id INT( 150 ) NOT NULL AUTO_INCREMENT PRIMARY KEY, 
    project_name VARCHAR( 500 ) NOT NULL, 
    c_id INT( 150 ) NOT NULL, 
    INDEX ( c_id ) 
) ENGINE = MYISAM 

AUTO_INCREMENTp_id に対してのみ行う

于 2012-12-17T12:11:58.330 に答える
1

使用する

CREATE TABLE Projects ( p_id INT( 150 ) NOT NULL AUTO_INCREMENT PRIMARY KEY , project_name VARCHAR( 500 ) NOT NULL , c_id INT( 150 ) NOT NULL  , INDEX ( c_id ) ) ENGINE = MYISAM

AUTO_INCREMENT は 1 つだけである必要があります

于 2012-12-17T12:12:35.583 に答える
0

これを試して。InDB と 1 つの AUTO INCREMENT のみを使用する必要があります

CREATE TABLE Projects ( p_id INT( 150 ) NOT NULL AUTO_INCREMENT PRIMARY KEY , project_name VARCHAR( 500 ) NOT NULL , c_id INT( 150 ) NOT NULL , INDEX ( c_id ) ) ENGINE = InnoDB
于 2012-12-17T12:12:22.760 に答える
0

テーブルごとに AUTO_INCREMENT を持つ列を 1 つだけ持つことができます。c_id から削除して、再試行してください

于 2012-12-17T12:12:26.847 に答える