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 27329 게시물 읽기
No. 27329
외래키생성시 에러가 나는데 원인을 못 찾겠습니다. 도와주세요.
작성자
궁금이
작성일
2008-01-17 02:04ⓒ
2008-01-17 12:07ⓜ
조회수
2,804

CREATE TABLE `테이블1` (
  `uid` int(10) unsigned NOT NULL auto_increment,
  `id` varchar(8) NOT NULL default '',
  `name` varchar(12) NOT NULL default '',
  PRIMARY KEY  (`uid`),
  KEY `IND_One_id` (`id`)
) TYPE=InnoDB ;

 
CREATE TABLE `테이블2` (
  `uid` int(10) unsigned NOT NULL auto_increment,
  `name` varchar(30) NOT NULL default '',
  `title` text,
  `regdate` varchar(10) default NULL,
  PRIMARY KEY  (`uid`),
  KEY `IND_Two_name` (`name`)
) TYPE=InnoDB ;


[TEST]테이블의
user_id는 [테이블1]의 id를 참조하고
user_uid는 [테이블2]의 uid를 참조하도록 하려고 합니다.

근데 아래와 같이 테이블 생성구문을 넣으면
   CREATE TABLE `TEST` (
     `uid` int(10) unsigned NOT NULL auto_increment,
     `user_id` varchar(8) NOT NULL default '',
     `user_uid` varchar(10) NOT NULL default '',
     `percent` varchar(5) default NULL,
     PRIMARY KEY  (`uid`),
     KEY `IND_user_id` (`user_id`),
     KEY `IND_user_uid` (`user_uid`),
     CONSTRAINT `FK_userid` FOREIGN KEY (`user_id`) REFERENCES `테이블1` (`id`) ON DELETE CASCADE ON UPDATE CASCADE,
     CONSTRAINT `FK_useruid` FOREIGN KEY (`user_uid`) REFERENCES `테이블2` (`uid`) ON DELETE CASCADE
   ) TYPE=InnoDB ;

#1005 - Can't create table './nowsite/fav_bank.frm' (errno: 150) <= 에러가 갑니다.

이것저것 삭제해서 테스트해본 결과
  CONSTRAINT `FK_useruid` FOREIGN KEY (`user_uid`) REFERENCES `테이블2` (`uid`) ON DELETE CASCADE
이 구문때문에 에러가 난 것이던데..  혹시 테이블의 `uid`가 PRIMARY KEY 라서 인덱스를 안준것 때문에 에러가 나는가~ 싶어서 인덱스를 추가로 주었는데도 에러가 나더군요.
뭐가 잘못된건지~~ 책을 봐도 모르겠고... 다른 분들의 글을 봐도.. 모르겠어요.

조언 좀 부탁드립니다.
**혹시 오타가 있더라도 그건 무시해주세요.. 옮겨 적다보니 생긴 오타일테니깐요...**

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

mysql은 table끼리 물리적으로 참조할 수 없다고 알고 있습니다.

그냥 논리적으로 맺어주고 사용하는 거지요.


에러가 난 부분도, 참조해서 종속관계를 맺어라는 부분이네요.


(제가 잘 못 알고 있는걸 수도 있으니 다른분 댓글을 기다려보심이..)

냐옹님이 2008-01-17 14:28에 작성한 댓글입니다. Edit
[Top]
No.
제목
작성자
작성일
조회
27333하루에 150만건 정도 쌓이는 Mysql 테이블에 대한 메모리 캐싱 질문드립니다. [1]
송준민
2008-01-18
3884
27332쿼리가 안됩니다.ㅜㅜ
김현옥
2008-01-17
2522
27330데이터베이스를 검색 할 때요
tragic
2008-01-17
2727
27329외래키생성시 에러가 나는데 원인을 못 찾겠습니다. 도와주세요. [1]
궁금이
2008-01-17
2804
27328Multiple Statements with MySQL and JDBC
zican
2008-01-16
5220
27327replication 에서 Master 테이블만 truncate하는 법 [2]
박성원
2008-01-16
2941
27326query timeout설정
dba
2008-01-15
2634
Valid XHTML 1.0!
All about the DATABASE... Copyleft 1999-2024 DSN, All rights reserved.
작업시간: 0.018초, 이곳 서비스는
	PostgreSQL v16.2로 자료를 관리합니다