반응형
워드프레스 데이터베이스에서 외국키를 만드는 방법은?
워드프레스에서 데이터베이스 테이블을 3개 만들려고 합니다.
그중 한명은 다른 한명과 관계를 맺고싶습니다.워드프레스로 참고키를 만드는 방법을 찾을 수가 없습니다.
이 코드를 테이블 위에 만들어서..그러나 참조와 키를 만드는 방법은 1개의 테이블이 두 테이블 사이의 관계를 포함할 것입니다.
global $wpdb;
$table_name = $wpdb -> prefix . "Person";
if($wpdb ->get_var("SHOW TABELS LIKE '$table_name'") != $table_name)
{
$sql = "CREATE TABLE " . $table_name . " (
`id` INTEGER(9) NOT NULL AUTO_INCREMENT,
`titel` varchar(255) NOT NULL,
`content` text NOT NULL,
UNIQUE KEY id (id)
);";
require_once(ABSPATH . 'wp-admin/includes/upgrade.php');
dbDelta($sql);
add_option('createTBL_version', '1.0');
}
외부 키는 다음과 같이 작동합니다.
FOREIGN KEY(table_field_name) REFERENCES [table_to_be_referred](referred_field)
필드는 참조 테이블에 있어야 하며 참조자의 정의와 정확히 일치해야 합니다.일반적으로 고유성 때문에 기본 키만 참조됩니다.
예는 다음과 같습니다.
CREATE TABLE A (
id INT NOT NULL PRIMARY KEY,
name VARCHAR(10)
);
CREATE TABLE B (
idB INT NOT NULL PRIMARY KEY,
idA INT NOT NULL,
name VARCHAR(10),
FOREIGN KEY (idA) REFERENCES A(id)
);
여기 외국키를 만드는 데 도움이 되는 코드가 있습니다. 같은 문제가 있었는데 해결이 되었습니다.
또한 대신에dbDelta($sql);
사용가능$wpdb->query(sql);
또한 아래 예제 location_id에서 외부 키의 유형과 참조 키의 유형이 동일한 데이터 유형인지 확인해야 합니다. 따라서 TEST2_TABLE의 기본 키인 id도 int(11) 유형이어야 합니다.
$sql = "CREATE TABLE ".TEST_TABLE." (
id INT( 11 ) NOT NULL AUTO_INCREMENT,
title VARCHAR( 100 ) NOT NULL,
description TEXT DEFAULT NULL,
location_id INT( 11 ) NOT NULL,
PRIMARY KEY (id),
FOREIGN KEY (location_id) REFERENCES ".TEST2_TABLE." (id)
);";
언급URL : https://stackoverflow.com/questions/28584680/how-to-create-foreign-key-in-wordpress-database
반응형
'programing' 카테고리의 다른 글
초보자의 경우 MySQL과 Postgre 사이에 많은 차이가 있습니까?SQL (0) | 2023.10.15 |
---|---|
각진 소재:매트데이트 픽커:DateAdapter에 대한 공급자를 찾을 수 없습니다. (0) | 2023.10.15 |
C++는 전처리기 기호를 정의하지 않고 디버그 기호로 컴파일하는지 여부를 확인합니다. (0) | 2023.10.15 |
보내기 전에 사용하고 $.post로 완료하시겠습니까? (0) | 2023.10.15 |
libclntsh.so .12.1 : node-oracledb 샘플을 실행할 때 공유 개체 파일을 열 수 없음 (0) | 2023.10.15 |