人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

【MySQLに関する質問です】

PostgreSQLで開発することが殆どですが、
今回、MySQLで開発することになりました。

さて、参照整合性成約でCASCADEをしたいと思うのですが、
MySQLでCASCADEの成約をする場合、どのようにすればいいでしょうか?

ちなみに、PostgreSQLの場合なら、以下の様なコードを実現したいです。
-------------------------------------------------
CREATE TABLE tb_test(
test_id INTEGER
CONSTRAINT fk_test REFERENCES tb_parent(parent_id)
ON DELETE CASCADE
ON UPDATE CASCADE
);
-------------------------------------------------

これをMySQLで実行すればエラーが返されますが、どのようにすればうまくいくでしょうか?

ご教授願います。

●質問者: PEPOTA
●カテゴリ:コンピュータ
✍キーワード:Cascade DELETE MySQL ON postgreSQL
○ 状態 :終了
└ 回答数 : 1/1件

▽最新の回答へ

1 ● karla
●40ポイント

http://dev.mysql.com/doc/mysql/ja/create-table.html

MySQL 4.1 リファレンスマニュアル :: 6.5.3 CREATE TABLE 構文

こちらでどうでしょう?

CREATE TABLE tb_test(

test_id INTEGER,

CONSTRAINT fk_test FOREIGN KEY(test_id) REFERENCES tb_parent(parent_id)

ON DELETE CASCADE

ON UPDATE CASCADE

)


MySQLの場合はバージョンを書いたほうがよいと思いますよ。

機能があったりなかったりしますので。

◎質問者からの返答

うまくいきました!

ありがとうございます。

基本的なバージョンを書いておくのを忘れてしまいましたm(__)m

ちなみに、バージョンは、CentOS4.1、rpm版のmysql-4.1.10a-2.RHEL4.1です。

バージョン間の互換は分かりませんので、

バージョンによっては、このままで動作できるかもですが、

最後の)にTYPE = innodb;を追記しないと正常に動作しない感じでした。

ご回答ありがとうございました。

関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ