2009-03-06 7 views
0

저는 alter table 쿼리를 사용하여 코드를 통해 db 테이블에 동적으로 테이블을 추가하고 있습니다. 하지만 난 그 문제가 열에 값을 삽입하려고 노력하고있다. 그것은 예외 컬럼을 발생시킵니다. 그리고 내가 깨끗하게하고 잘 작동 netbeans 통해 내 프로젝트를 다시 작성합니다.테이블의 동적으로 생성 된 열에 데이터를 삽입하는 중 문제가 발생했습니다

나는 java와 mysql을 databse로 사용하고있다.

이 문제에 대한 해결책을 알고있는 기관이 있습니까?

다음은 내 테이블 변경 쿼리 코드

 String alterTableQuery ="alter table `test` add `abc` varchar(50) NOT NULL default ''"; 
    stmt = conn.prepareStatement(alterTableQuery); 
    boolean val = stmt.execute(); 

내가 다음 코드를 사용하여 데이터를 삽입하려합니다. 난 당신이) (dataAdapter.AcceptChanges를 호출 할 필요가 테이블에 변경을 수행 한 후 자바에 대해 있지만 .NET에서 잘 모릅니다

 String sqlQuery = "insert into `test` (`id`,`abc`) values (?)" ; 
     stmt = conn.prepareStatement(sqlQuery); 
     boolean val = stmt.execute(); 
+0

SQL 문을 게시 할 수 있습니까? –

+0

또한 가능한 경우 테이블의 "DESCRIBE

"을 게시하고 문제가되는 열을 지적하십시오. –

+0

코드 예제가 있습니까? – MatBailie

답변

0

; 이는 본질적으로 테이블 변경을 커밋합니다.

코드에서 열을 테이블에 추가 한 후에 유사한 코드를 호출해야 삽입 기능이 작동합니다.

0

데이터 설명 언어 (DDL)는 종종 트랜잭션 외부에서 실행되기 때문일 수 있습니다. 아마도 커밋/롤백 또는 심지어 다시 연결 문제를 정렬합니다. 그냥 추측.

1

디자인을 다시 생각해 볼 수도 있습니다. 일반적으로 사용자 인터페이스가 테이블에 열을 추가하는 것은 좋지 않습니다. 아마 당신은 더 정규화 된 디자인이 필요합니다. 데이터베이스 구조 변경은 사용자가 가져서는 안됩니다. 다른 사용자가 동시에 변경하는 경우 당신은 진짜 혼란을 만들 수 있습니다. 또한 사용자는 열을 추가 할 수있는 보안 권한이 없어야합니다. 이는 시스템의 주요 위험 요소입니다.

관련 문제