2013-01-31 3 views
0

2 개의 테이블을 만들었습니다. 두 번째 테이블은 첫 번째 테이블의 기본 키를 참조하는 외래 키로 구성됩니다. 두 번째 테이블은 id (기본 키) 제가 값 (1, (표 1로부터 번호를 선택 (FID 어떠한 순서) 표 2에 다음 명령을mysql을 사용하여 외래 키가있는 테이블에 데이터를 삽입 할 수 없습니다.

삽입물을 사용하고 을 FID없는 경우 NAME = 'ABC');

오류 SQL 구문 enter code here

+0

전체 오류 메시지는 무엇입니까? –

+0

SQL 구문에 오류가 있습니다. 1 번 라인에서 'order no, fid)'값 (1, (name = 'abc')에서 테이블 2의 id를 선택하십시오.) '을 사용하는 올바른 구문을 보려면 MySQL 서버 버전에 해당하는 매뉴얼을 확인하십시오. – user1690808

+0

mysql 질의 브라우저 – user1690808

답변

0

결핍 p가 부족합니다 arenthesis

insert into table2 (`order no`,fid) 
values(1,(select id from table1 where name='abc' LIMIT 1)); 
+0

q를 게시하는 동안 실수를했습니다. 나는 또한 그랬지만, 여전히 'order'와'no' 사이에 공백이 있기 때문에 여전히 오류가 계속 나타납니다. – user1690808

+0

. 업데이트되었습니다. –

1

ORDERreserved word이다. 당신은 백틱을 사용하여 그것을 인용해야합니다 : `order no`. 어디 이름 = 'ABC 값 (1, (표 1에서 ID를 선택합니다 (fid``주문 no`,`) table2``에

INSERT INTO table2 (`order no`, fld) 
SELECT 1,id FROM table1 WHERE name = 'abc' 
+0

네, 고마워요. 그게 무슨 실수를 저질렀습니까? – user1690808

+0

@ user1690808 : @JW로 [두 번] (http://stackoverflow.com/questions/14628150/not-able-to-insert-data-in-a-table-having-foreign-key-using-mysql#comment20431472_14628150) [commented] (http : //stackoverflow.com/questions/14628150/not-able-to-insert-data-in-a-table-having-foreign-key-using-mysql#comment20431502_14628181) 위의 대답에 명시된 바와 같이 견적 '주문 번호'. – eggyal

+0

ok 그래, 많이 고마워. – user1690808

0

삽입 : 또한

, 당신은 아마 MySQL을의 INSERT ... SELECT 구문을 사용한다 (외래 키 제약 조건이 실패 (ABC/데모 1, 제약 FID FOREIGN KEY (ID) 참조는 데모 : 은 그 오류를 추가하거나 자식 행을 업데이트 할 수 있습니다 :; ')

이 편집 ... 문제 라인이 될 수 id))

abc/demo1, CONSTRAINT fid 외래 키 (fid) 참조 데모 (id))

+0

주문 및 테이블은 mySQL의 예약어입니다. 예약어를 사용하여 열 이름을 지정할 수 없습니다. 만약 당신이 괄호에 의해 견적을 u hv 할거야. 당신의 열을 orderno 그것 wud 할 이름을했지만 U '주문 아니'.. 주문은 SQL에 의해 명령을 수행하는 데 사용됩니다 .. 좋은가는 챔피언 .. – user1974729

+0

괜찮아요.하지만 알 겠어. 그럴 때 오류가 발생합니다. – user1690808

+0

오류가 자식 행을 추가하거나 업데이트 할 수 없습니다. 외래 키 제약 조건이 실패합니다 ('abc/demo1', CONSTRAINT'fid' FOREIGN KEY ('id ') REFERENCES'demo' ('id')) – user1690808

관련 문제