나는 이미 다른 사람이 작성한 데이터베이스에 새로운 문서를 작성하는 중이다. 이미 존재하는 테이블에 대한 많은 참조를 가진 새로운 테이블을 추가해야합니다.외래 키를 추가하는 동안 참조 테이블의 삭제 동작을 알아야하는 방법
+-----------------------+---------------------+------+-----+---------------------+----------------+
| Field | Type | Null | Key | Default | Extra |
+-----------------------+---------------------+------+-----+---------------------+----------------+
| ID | bigint(20) unsigned | NO | PRI | NULL | auto_increment |
| post_author | bigint(20) unsigned | NO | MUL | 0 | |
| post_date | datetime | NO | | 0000-00-00 00:00:00 | |
| guid | varchar(255) | NO | | | |
| menu_order | int(11) | NO | | 0 | |
| post_type | varchar(20) | NO | MUL | post | |
| post_mime_type | varchar(100) | NO | | | |
| comment_count | bigint(20) | NO | | 0 | |
| legacy_id | int(11) | YES | | NULL | |
+-----------------------+---------------------+------+-----+---------------------+----------------+
나는 많은 참조 테이블에 많은 나에게 도움이 테이블 태그와 tag_posts_reference를 만들 필요가 다음
는이미 테이블에 존재하는 wp_posts입니다. 태그 테이블은 wp_tags입니다 :
+-------+---------------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+-------+---------------------+------+-----+---------+----------------+
| id | bigint(20) unsigned | NO | PRI | NULL | auto_increment |
| tag | varchar(255) | YES | | NULL | |
+-------+---------------------+------+-----+---------+----------------+
테이블 wp_tags_posts를 만드는 데 문제가 있습니다. 그는 나에게 다음과 같은 오류를주고있다 :
mysql> create table wp_posts_tags(id bigint(20) unsigned auto_increment,
post_id bigint(20) unsigned not null,
tag_id bigint(20) unsigned not null,
primary key(id), index(post_id),
foreign key(post_id) references wp_posts(id) on Update cascade on delete restrict,
index(tag_id),
foreign key(tag_id) references wp_tags(id))
ENGINE = INNODB;
ERROR 1005 (HY000): Can't create table 'openexhibits_dev.wp_posts_tags' (errno: 150)
내가 일부는 내가 추가 하죠 캐스케이드 행동에 삭제 있다고 생각합니다. 몇 가지를 추가하고 시행 착오를 시도했지만 그 중 아무도 작동하지 않습니다. 외래 키 참조를 생성하는 동안 사용할 캐스케이드 삭제 작업을 찾을 수있는 방법이 있습니까? 거기에 그 작업을 보여줄 수있는 dec table_name과 같은 명령이 있습니까? 나는 아무런 행동을 삭제하려고 노력하지 않았고 널 등을 지우지 만, 테이블 사이의 관계를 다루면서 맹목적으로 시행 착오를하고 싶지 않다. 누구든지 나를 도울 수 있습니까? 고맙습니다.
테이블은 어떤 저장 엔진을 사용합니까? 외래 키 제약은 InnoDB 테이블에서만 작동한다. – eggyal
InnoDB를 사용하고 있습니다. 죄송합니다. 추가하지 않으셔서 죄송합니다. – Maddy