« MySQLで誕生日から現在の年齢を出力する。 | トップページ | MySQLのCASE文ではまる »

2011/06/17

MySQLでテーブルの構造を得て、外部キー制約を削除する

基本、テーブル作成はphpMyAdmin上で実行します。
で、外部キーをつけてしまうと、列が削除できなくなってしまいます。

#1025 - Error on rename of './test/#sql-bd7_23903' to './test/tablename' (errno: 150)

ここではまってしまうことがよくあるので対策を記録しておきます。

まずコンソールのMySQLからSHOW CREATE TABLEする
SHOW CREATE TABLE [tablename];

すると外部キー制約が表示される

CONSTRAINT `tablename_ibfk_1` FOREIGN KEY (`user_id`) REFERENCES `users` (`id`) ON DELETE CASCADE ON UPDATE CASCADE

これをALTER TABLE文で制約を削除

ALTER TABLE user_profiles DROP FOREIGN KEY `tablename_ibfk_1`;

これで、テーブルから列をDROPすることができます。

« MySQLで誕生日から現在の年齢を出力する。 | トップページ | MySQLのCASE文ではまる »

コメント

コメントを書く

(ウェブ上には掲載しません)

トラックバック

この記事のトラックバックURL:
http://app.cocolog-nifty.com/t/trackback/12417/51968578

この記事へのトラックバック一覧です: MySQLでテーブルの構造を得て、外部キー制約を削除する:

« MySQLで誕生日から現在の年齢を出力する。 | トップページ | MySQLのCASE文ではまる »