이 코드가 실행되지 않는 이유는 무엇입니까? 여기에 내가 PHPMYAD를 통해 실행할 때 나는 점점 오전 오류입니다MYSQL 코드에 어떤 문제가 있습니까?
오류 SQL 쿼리 :
CREATE TABLE 'c4lpetitions'. 'Legalize-Raw-Milk-in-Wisconsin-1362871708' (
'prefix'VARCHAR(10) NULL ,
'first'VARCHAR(255) NULL ,
'middle'VARCHAR(255) NULL ,
'last'VARCHAR(255) NULL ,
'suffix'VARCHAR(10) NULL ,
'email'VARCHAR(255) NOT NULL ,
'address'VARCHAR(255) NULL ,
'city'VARCHAR(255) NULL ,
'state'VARCHAR(2) NULL ,
'zip' INT NULL ,
'timestamp'TIMESTAMP DEFAULT CURRENT_TIMESTAMP
)
MySQL은 말했다 : 문서
(1 라인에서 '10')을 사용하여 올바른 구문을 보려면 MySQL 서버 버전에 해당하는 설명서를 확인하십시오. 백 틱1064 - 당신은 당신의 SQL 구문에 오류가 있습니다; Legalize-Raw-Milk-in-Wisconsin-1362871708 '('prefix 'VARCHAR (10'in line 1)
http://dev.mysql.com/doc/refman/5.6/en/reserved-words.html 예약어를 사용하지 말고 데이터베이스 엔진과 이식 가능하지 않은 불쾌한 백틱이 필요하지 않습니다. ANSI SQL이 아닙니다. 프로그래밍에서 예약 된 키워드를 사용하는 것이 가능하지 않으므로 SQL 안티 패턴이어야합니다. –
핵심 문제 외에도 모든 청원에 대해 새 테이블을 만드는 것으로 보입니다. 처리중인 특정 성능 문제가있는 경우가 아니라면 단일 사용자 테이블과 해당 테이블과 보조 테이블 사이에 많은 테이블이있는 것이 훨씬 쉽습니다. – halfer
@halfer 당신은 그의 어플리케이션 요구 사항을 완벽하게 알지 못하지만 여전히 좋은 코멘트입니다. 복잡한 내부 조인이나 유니온 모든 문장이 필요하기 때문에 그는 정말로 문제가있는 모든 C4lpetitions 테이블에 대한 통계를 폴링해야합니다. 원인이되는 성능 문제 유니온은 임시 테이블을 생성하는 것으로 알려져 있습니다 ..) 이것은 파티션 테이블이어야합니다 .. –