私は2つのテーブルをmysqlで作成しました。そして、それらの間に外部キー用の新しい制約を追加しています。その後、は外部キーを作成できません
create TABLE post
(
post_id NUMERIC (5) NOT NULL ,
post_username varchar (30) NOT NULL ,
post_category_name VARCHAR (30) NOT NULL ,
post_date TIMESTAMP ,
post_reporting numeric (3) ,
post_text varchar(2000) ,
post_photo varchar(200)
);
alter TABLE post add CONSTRAINT po_pk PRIMARY KEY (post_id , post_username , post_date) ;
/*comment*/
create table comment
(
comment_username varchar(30) NOT NULL ,
comment_post_id NUMERIC(5) NOT NULL ,
comment_post_username VARCHAR (30) NOT NULL ,
comment_post_date TIMESTAMP,
comment_date TIMESTAMP ,
comment_text varchar(2000) ,
comment_photo varchar(200)
);
alter table comment add CONSTRAINT co_pk PRIMARY KEY (comment_username,comment_date,comment_post_date,comment_post_id,comment_post_username);
、私は
ALTER TABLE comment ADD CONSTRAINT com_ps_un_fk FOREIGN KEY (comment_post_date)
REFERENCES post(post_date);
を次のように外部キーの新しい制約を追加するとき、私は(errno: 150 "Foreign key constraint is incorrectly formed")
を受け、両方の属性が、私はまたの両方のための別の確率を試してみましたTIMESTAMP
の同じデータ型をしていますそれらを両方ともNULL
、NULL DEFAULT CURRENT_TIMESTAMP
、同じものをNOT NULL
と同じように作成しても問題ありません。
コメントテーブル内のコンテンツがあります:そして、あなたは関係を作ることができるのでしょうか? – jophab
[this](http://stackoverflow.com/questions/8434518/mysql-foreign-key-constraint-is-incorrectly-formed-error)答え:両方の列の型と長さが同じである必要があります。 – Hossam
joepap彼らは何も持っていない、私はちょうどそれらを作成した – Amr