>  Q&A  >  본문

UNION의 CREATE TABLE SELECT를 사용한 Mariadb 문제 해결

<p>저는 6개의 UNION SELECT가 포함된 PHP 스크립트를 작업 중이며 스크립트 내에서 이 명령이 제대로 실행됩니다. 이 명령은 SQL 클라이언트에서 실행할 때도 제대로 작동합니다. 그러나 CREATE TABLE mytable SELECT 안에 SELECT 문을 넣으려고 하면 다음과 같은 오류 메시지가 나타납니다. </p> <pre class="brush:php;toolbar:false;">잘못된 열 이름 ''</pre> <p>6개의 UNION SELECT 조각 중 5개에는 ''라는 열 이름이 있는데, 이는 스크립트의 후속 부분에서 데이터를 채울 때 자리 표시자로 사용됩니다. 그러나 UNION 중 하나에서 동일한 위치는 varchar(32) 열입니다. <br /><br />명령의 일반적인 실행에서는 "익명" 열의 존재 여부가 중요하지 않은 것 같습니다. 하지만 CREATE TABLE 버전에서는 이것이 마음에 들지 않습니다. <br /><br />SELECT와 CREATE TABLE SELECT의 통합 열 이름 규칙이 다른 이유는 무엇입니까?


P粉115840076P粉115840076467일 전547

모든 응답(1)나는 대답할 것이다

  • P粉821231319

    P粉8212313192023-08-03 09:31:45

    테이블에는 비어 있거나 누락된 열 이름이 포함될 수 없지만 결과 세트에는 가능합니다. CREATE TABLE SELECT 문은 SELECT 문의 결과 집합에서 테이블의 열 이름을 가져옵니다. 따라서 결과 집합의 각 열에 일부 테이블의 열에서 파생되거나 AS 별칭을 통해 지정된 이름이 있는지 확인해야 합니다. 예를 들어

    으아악

    는 CREATE TABLE 문에 적용되는 반면

    으아악

    첫 번째 열에 별칭 열 이름을 할당하지 않으므로 해당 사항이 없습니다.

    회신하다
    0
  • 취소회신하다