2012-01-02 14 views
1

私はMySQLのテーブル作成エラー

MEMBERという名前の2つのテーブルがある - 列ID(主キー)、名前、電子メール &

TOPICS - 列ID、topic_type、CREATED_BYを。

私は列MEMBERID(会員テーブルIDの外部キー)を有している、話題にメンバーをマップする新しいテーブルMEMBER_TO_TOPICSを作成したい、は(トピックテーブルID外部キー)ををTOPICID、created_time
実行しようとしているクエリは次のとおりです。

CREATE TABLE `gsraisin`.`member_to_topics` (
`member_id` VARCHAR(50) NOT NULL, 
`topic_id` VARCHAR(50) NOT NULL, 
`created_date` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP, 
PRIMARY KEY (`member_id`, `topic_id`), 
CONSTRAINT `FK_member_to_topics_memberid` FOREIGN KEY `FK_member_to_topics_memberid` 
(`member_id`) 
REFERENCES `member` (`id`) 
ON DELETE CASCADE 
ON UPDATE NO ACTION, 
CONSTRAINT `FK_member_to_topics_topicid` FOREIGN KEY `FK_member_to_topics_topicid` 
(`topic_id`) 
REFERENCES `topics` (`id`) 
ON DELETE CASCADE 
ON UPDATE NO ACTION 
) 
ENGINE = InnoDB; 

しかし、実行中に、次のエラーを取得 - MYSQLエラー番号1005は、テーブルmember_to_topics(エラー番号:121)を作成することはできません私は私のローカルマシン上でこれを試してみました

答えて

1

をし、それがうまく働きました。

mysql> show create table member; 
+--------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 
| Table | Create Table                                              | 
+--------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 
| member | CREATE TABLE `member` (
    `id` varchar(50) NOT NULL DEFAULT '', 
    `name` varchar(50) DEFAULT NULL, 
    `email` varchar(50) DEFAULT NULL, 
    PRIMARY KEY (`id`) 
) ENGINE=InnoDB DEFAULT CHARSET=latin1 | 
+--------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 
1 row in set (0.00 sec) 


mysql> show create table topics; 
+--------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 
| Table | Create Table                                                 | 
+--------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 
| topics | CREATE TABLE `topics` (
    `id` varchar(50) NOT NULL DEFAULT '', 
    `topic_type` varchar(50) DEFAULT NULL, 
    `created_by` varchar(50) DEFAULT NULL, 
    PRIMARY KEY (`id`) 
) ENGINE=InnoDB DEFAULT CHARSET=latin1 | 
+--------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 
1 row in set (0.00 sec) 

mysql> show create table member_to_topics; 
+------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 
| Table   | Create Table                                                                                                                                           | 
+------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 
| member_to_topics | CREATE TABLE `member_to_topics` (
    `member_id` varchar(50) NOT NULL, 
    `topic_id` varchar(50) NOT NULL, 
    `created_date` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP, 
    PRIMARY KEY (`member_id`,`topic_id`), 
    KEY `FK_member_to_topics_topicid` (`topic_id`), 
    CONSTRAINT `FK_member_to_topics_memberid` FOREIGN KEY (`member_id`) REFERENCES `member` (`id`) ON DELETE CASCADE ON UPDATE NO ACTION, 
    CONSTRAINT `FK_member_to_topics_topicid` FOREIGN KEY (`topic_id`) REFERENCES `topics` (`id`) ON DELETE CASCADE ON UPDATE NO ACTION 
) ENGINE=InnoDB DEFAULT CHARSET=latin1 | 
+------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 
1 row in set (0.00 sec) 

エラーコード121は、重複キー用です。

[[email protected] ~]$ perror 121 
OS error code 121: Remote I/O error 
MySQL error code 121: Duplicate key on write or update 

おそらく、重複する制約名が存在する可能性がありますか?

+0

あなたの返信用のmatthewには、私のために働く制約名を変更してください。制約名には任意の名前や特定の列名を使用できますか? –

関連する問題