2016-08-02 3 views
1

테이블 ('projects')에 고유 한 'project_title'값을 삽입하기 위해 아래와 같은 쿼리를 작성했습니다.MySQL의 중복 오류

INSERT INTO projects (projects.project_title, projects.description) 
SELECT * FROM (SELECT 'a title', 'a description') AS tmp 
WHERE NOT EXISTS (SELECT projects.project_title FROM projects WHERE projects.project_title = 'a title') LIMIT 1 

모두 프로젝트 제목과 프로젝트 설명을 위해 동일한 항목 입력 쿼리는 다음과 같이 될 것입니다 때까지 잘 작동 :

[Err] 1060 - Duplicate column name 'text' 
: 이제

INSERT INTO projects (projects.project_title, projects.description) 
SELECT * FROM (SELECT 'text', 'text') AS tmp 
WHERE NOT EXISTS (SELECT projects.project_title FROM projects WHERE projects.project_title = 'text') LIMIT 1 

,이 오류가 발생합니다

이 중복 오류를 제거하는 방법!

+2

('텍스트'firstText AS '텍스트'SELECT FROM secondText AS * 열'... SELECT에 별칭을주는 시도) AS tmp ....' – 1000111

+0

고마워, 해결 됐어! – Mosi

+1

@ 1000111 답하십시오! \영형/ – Jakumi

답변

1

여기 잘못된 문을 추출 : 당신이 컬럼에 별칭을 제공하지 않았기 때문에

SELECT 
tmp.* 
FROM 
(
    SELECT 'text', 'text' 
) AS tmp; 

이 쿼리는이 오류를

[Err] 1060 - Duplicate column name 'text'

를 생성합니다.

해결 방법 : 컬럼에

가지 적어 별칭 :

SELECT 
    tmp.* 
FROM 
(
    SELECT 
     'text' AS firstText, 
     'text' AS secondText 
) AS tmp;