2012-02-04 1 views
0

を仕事に失敗した私は今、このMySQLの文が

CREATE TABLE PARENT (parentID int not null auto_increment primary key,...); 
CREATE TABLE CHILD (childID int not null auto_increment primary key, parentID int not null,...); 

のようにそれを作成したテーブルを修正する文を自身のIDの上に親を参照する外部キーを提供することにより、子テーブルを変更したいですis

ALTER TABLE child CHANGE parentID parentID int not null foreign key references parent(childID) ON DELETE CASCADE; 

これは機能しません。どんな助けもありがとうございます。ありがとう。

+0

エラーは何ですか? –

+0

"foreign key"の近くに構文エラーがあり、MySQL Workbenchでチェックしました。 – fuzzyanalysis

+0

あなたは完全なエラー文字列を投稿できますか? –

答えて

0

ALTERのためにT-SQL-構文についてMSDN Libraryをご覧ください。

ALTER TABLE Child ALTER COLUMN... 
+0

おそらくMySQLのDDLコマンドを書くのにあまり役に立ちません。 – araqnid

0

最後の行には、外部キーの列名の参照が正しくないため、childIDではなくparentIDを参照する必要があります。また、構文エラーがいくつかあります。

代わりにこれを試してみてください:

ALTER TABLE child CHANGE parentID parentID int not null, 
add foreign key (parentID) references parent(parentID) ON DELETE CASCADE; 
1

ちょうど言う:

ALTER TABLE `CHILD` 
    ADD FOREIGN KEY (parentId) REFERENCES `PARENT`(parentId) ON DELETE CASCADE; 

それはすでに正しいだと列の型を変更する必要(私の知る限りでは)ありません。