database.sarang.net
UserID
Passwd
Database
DBMS
ㆍMySQL
PostgreSQL
Firebird
Oracle
Informix
Sybase
MS-SQL
DB2
Cache
CUBRID
LDAP
ALTIBASE
Tibero
DB 문서들
스터디
Community
공지사항
자유게시판
구인|구직
DSN 갤러리
도움주신분들
Admin
운영게시판
최근게시물
MySQL Q&A 21489 게시물 읽기
No. 21489
Mysql의 외래키와 InnoDB T_T
작성자
최현수(Hyri)
작성일
2004-04-10 23:41
조회수
2,226

Mysql 4.0.18 win 이구요

 

Windows XP 입니다

 

winmysqladmin에서 mysqld-max-nt 로 설정했구요;;

 

Create Table은 그냥은 되는데

 

foreign key를 설정하면 에러가 납니다.

 

mysql> CREATE TABLE Customers(
    -> cid      INTEGER NOT NULL, cname CHAR(80)        NOT NULL,
    -> address  CHAR(200)       NOT NULL, username      CHAR(16) NOT NULL,
    -> pass     CHAR(16)        NOT NULL,
    -> PRIMARY KEY(cid))type=InnoDB;
Query OK, 0 rows affected (0.19 sec)

mysql>

 

아래는 foreign key를 설정한 경우입니다.

mysql> CREATE TABLE Orders(ordernum     INTEGER NOT NULL,
    -> cid INTEGER NOT NULL, cardnum CHAR(16) NOT NULL,
    -> cardmonth INTEGER NOT NULL, cardyear INTEGER NOT NULL,
    -> order_date DATE, ship_date DATE,
    -> PRIMARY KEY(ordernum),
    -> FOREIGN KEY(cid) REFERENCES customers(cid))type=InnoDB;
ERROR 1005: Can't create table '.\db_hw2\orders.frm' (errno: 150)
mysql>

 

 

어디서 틀렸던가 어디를 확인해 봐야 하는지요;; 계속 봤는데 모르겠네요 ㅠ.ㅜ

여기저기 검색은 한다고 다 해봤는데 ;;;

혹 root가 아니라 그런가요?

접속된 유저는 해당 database의 모든 권한을 줬거든요

유저 생성할때 all privilege  db_abc.* 이런식으로 (스펠이 정확하닞 가물.. -0-) 생성했는데

어디를 확인해봐야할까요?

 

이 글에 대한 댓글이 총 2건 있습니다.

아래는 foreign key를 설정한 경우입니다.

mysql>CREATE TABLE Orders(

->ordernum INT NOT NULL,
->cid INT NOT NULL,

->cardnum CHAR(16) NOT NULL,
->cardmonth INT NOT NULL,

->cardyear INT NOT NULL,
->order_date DATE,

->ship_date DATE,
->PRIMARY KEY(ordernum),

->index idx_cid (cid),           //  추가된 부분 실행해 보세요
->FOREIGN KEY(cid) REFERENCES customers(cid)

->)type=InnoDB;

 

아래는 위두 라인에 대한 추가 설정 예 입니다.

몇가지 설정이 있는거 같더라구여^^ 자세히는 모르겠네요

->foreign key(cid) references customers(cid) on delete cascade

) engine = innodb;

 

 

참조]http://dev.mysql.com/doc/mysql/en/InnoDB_foreign_key_constraints.html

 

덧문] 대강 보니깐 foreign key 지정할 필드를 index 처리 한다음 지정 해야 하는것 같습니다.

 

 

 

김용대(couchy)님이 2004-04-11 01:27에 작성한 댓글입니다.

정말 Foreign key 지정할 필드를 index 잡아주니 에러없이 테이블이 만들어 지네요. 좋은 정보 감사합니다.^^

mgh님이 2004-10-19 19:29에 작성한 댓글입니다. Edit
[Top]
No.
제목
작성자
작성일
조회
21492IN과 NOT IN? [1]
최현수
2004-04-11
878
21491mysqld-max-nt.exe가 메모리 참조를 했다고 하네요... [1]
초조질문
2004-04-11
1062
214901년에 10만개씩 쌓이는 데이타 테이블을 어떻게 관리? [1]
박성엽
2004-04-11
1167
21489Mysql의 외래키와 InnoDB T_T [2]
최현수
2004-04-10
2226
21488정재익님 DOS와 MySQL 연동에 대해 질문했던 사람입니다. [2]
최원용
2004-04-10
628
21487INT 형의 사이즈에 관해서 질문 드립니다 [2]
사이즈궁금
2004-04-10
1004
21486MySQL의 FOREIGN KEY? [2]
최현수
2004-04-09
2069
Valid XHTML 1.0!
All about the DATABASE... Copyleft 1999-2024 DSN, All rights reserved.
작업시간: 0.018초, 이곳 서비스는
	PostgreSQL v16.2로 자료를 관리합니다