테이블 primary key, foreign key, index질문입니다
본문
CREATE TABLE IF NOT EXISTS a_1
( memberSeq int(11) NOT NULL AUTO_INCREMENT PRIMARY KEY,
id varchar(20) NOT NULL,
password varchar(256) NOT NULL,
name varchar(10) NOT NULL,
email varchar(30),
index idx_id(id)
)
CREATE TABLE IF NOT EXISTS b_1
(
idx int(11) NOT NULL AUTO_INCREMENT PRIMARY KEY,
id varchar(50) NOT NULL,
password varchar(256) NOT NULL,
title varchar(100) NOT NULL,
content text NOT NULL,
date varchar(20) NOT NULL,
FOREIGN KEY (memberSeq)
index index_id(id)
)
;
이렇게 윗테이블과 아랫테이블로해서 위에는 정보 받고 아래는 글을 작성하는 테이블인데 pk와 fk가 잘 작성이 되었는지 궁금하고 index를 저렇게 받아도 되는건지... 두개의 테이블은 join으로 받아서 해볼생각입니다 그리고 아래 테이블을 돌리면
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'index index_id(id) )' at line 10 라고 오류가 나오는데 잡지를 못하겠어서 질문드립니다..ㅜㅜ
답변 2
CREATE TABLE IF NOT EXISTS a_1
( memberSeq int(11) NOT NULL AUTO_INCREMENT PRIMARY KEY,
id varchar(20) NOT NULL,
password varchar(256) NOT NULL,
name varchar(10) NOT NULL,
email varchar(30),
index idx_id(id)
)
a_1 을 위처럼 만드시고 id 를 index 로 만드셨고 b_1 을 만들때 FK 를 a_1 의 memberSeq
로 하시려면
CREATE TABLE IF NOT EXISTS b_1
(
idx int(11) NOT NULL AUTO_INCREMENT PRIMARY KEY,
id varchar(50) NOT NULL,
memberSeq int(11) NOT NULL ,
password varchar(256) NOT NULL,
title varchar(100) NOT NULL,
content text NOT NULL,
date varchar(20) NOT NULL,
FOREIGN KEY (memberSeq) REFERENCES a_1(memberSeq),
UNIQUE INDEX index_id(idx)
)
;
이렇게 하시면 됩니다
!-->!-->
어느 DBMS를 사용하시는지 몰라도
https://dev.mysql.com/doc/refman/5.6/en/create-table.html
https://dev.mysql.com/doc/refman/5.6/en/create-table-foreign-keys.html
mysql에서는 문법이 좀 다르네요.