Parent table | id primary key, message_p
Child table | id primary key, parent_id foreign key, message_c
Iは、子テーブルに親テーブル及びデータの2行のデータの1行を有していました。私は、FK関係が強制する制約をテストしたかったのです。私は、子テーブルは2行を持っていたことeveneかかわらず、私はその後、先に行くと、親行を削除することができるように、子テーブルから外部キーを削除しようとしました:
alter table child
drop foreign key parent_id
私は次のエラーを得た:
[1091 - Can't DROP 'parent_id'; check that column/key exists]
注:
show create table child
CREATE TABLE `track` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`member_id` int(11) NOT NULL,
`title` varchar(50) DEFAULT NULL,
`artist` varchar(50) DEFAULT 'TBA',
`album` varchar(50) DEFAULT 'TBA',
`genre` varchar(50) DEFAULT 'TBA',
`dance_style` varchar(50) DEFAULT 'TBA',
PRIMARY KEY (`id`),
KEY `member_id` (`member_id`),
CONSTRAINT `track_ibfk_1` FOREIGN KEY (`member_id`) REFERENCES `member` (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1
私はFKのについての私のクエリまたは一般的な理解で何かが足りないのですか?
外部キー名ではなく、列名で外部キーを削除しようとしているようです。 –
また、 'show create table child'は' track'テーブルを表示しています。正しいコードを貼り付けたことを確認してください。 –
しかし、そのテーブルでは、制約名は 'track_ibfk_1'です。あなたの 'child'テーブルでも同じことが起こりますので、外部キー名ではなく、カラム名で外部キーを削除しようとしています。 –