매월 300 개 이상의 열을 포함하는 CSV 파일이 생성됩니다. 파일의 레이아웃은 언제든지 변경 될 수 있으며 열은 추가/제거 될 수 있습니다. 필자는 정확한 열 수를 포함하는 동적 테이블을 만드는 방법이 필요합니다. 난 열 이름에 상관 없어요, 그들은 Column1, Column2, 등 수 있습니다. 그리고 Varchar (500) 모든 유형을 설정할 계획이다.MySQL 동적 테이블 문제
이상적으로 내가 원하는 것은 단순히 필요한 열의 수를 전달할 수있는 저장 프로 시저이며 필요한 테이블 정의 sql을 작성한 다음 해당 SQL을 실행하도록 반복합니다.
심지어 이렇게 할 수 있습니까? 나는 다음을 쓰기 시작했다 : 나는에 가까운 뭔가를하고 싶지만 내가 정말 필요로하는 모든 컬럼의 특정 번호로 테이블을 생성 할 수있는 기능입니다
BEGIN
Declare loopvar int default 1;
Declare tsql VarChar(5000);
Declare table_definition VarChar(8000);
Declare tablename varchar(20);
Set table_definition = 'Column';
set tablename = 'npi_data';
Set loopvar = 1;
While loopVar < 362 DO
set tsql = table_definition + loopvar + 'varchar(500) DEFAULT NULL' ;
set loopvar = loopvar + 1;
end while;
set tsql = 'CREATE TABLE' + tablename + '(' + tsql + ') ENGINE=InnoDB DEFAULT CHARSET=utf8';
execute tsql;
END;
.
감사합니다.
Column1과 Column2라는 열을 사용하는 것이 좋습니다. 각 열 이름이 쉼표로 구분되는 일부'@tableColumns VARCHAR (8000)'매개 변수를 사용하지 않으시겠습니까? –