2017-11-21 1 views
0

데이터베이스에 열을 추가해야하고 모든 두 번째 열에 이름이 없으면 일반 "x"이름을 지정하고 싶지만 sqlite3.OperationalError: duplicate column name: x 오류가 발생합니다.sqlite에 같은 이름의 열을 추가하는 방법

 for meci in ech1: 

      c.execute("ALTER TABLE Aranjate ADD COLUMN "+ ech1[ii] +" INT") 
      c.execute("ALTER TABLE Aranjate ADD COLUMN x INT") 
      c.execute("ALTER TABLE Aranjate ADD COLUMN "+ ech2[ii] +" INT") 
      conn.commit() 
      ii = ii +1 

그리고 난 그래서 같은 이름을 가진 변수로 삽입하지 않습니다 x = str(ii)x을 대체하려고 :

c.execute("ALTER TABLE Aranjate ADD COLUMN " + x + " INT") 

하지만 난 내가 얻을로 sqlite가 테이블 이름으로 정수를 허용하지 않는 가정 오류 sqlite3.OperationalError: near "0": syntax error wher 전자 0

답변

1

SQLite는 열 이름을 허용하지 않는 CSV 파일로 그 열이 나는이 표와 함께 할 모든과 같은 이름의 경우 그것은 나에게 문제가되지 않습니다 x

처음으로 수출을하다 데이터베이스의 목적을 무력화시킬 것이기 때문에 동일해야하므로 각 행에 대해 동일한 속성의 데이터와 모순이됩니다.

SQLite는 또한 열 이름이 숫자로 시작하도록 허용하지 않으므로 0one을 열 이름으로 사용할 수 없지만 zero1은 문제가 없습니다. 그러나 주위에 대괄호를 추가하여 유효하게 만들 수 있습니다.

시도 : 숫자로 시작

c.execute("ALTER TABLE Aranjate ADD COLUMN [" + x + "] INT") 
+0

열 이름은 * * 당신이 특별한 처리가 필요합니다 (예 : 공백이 포함 된 것과 같은) 다른 식별자처럼 인용해야 만한다는 것입니다 허용됩니다. SQL Server 스타일 괄호 인용보다는 표준 SQL 인용 부호 (즉, 큰 따옴표)를 사용하는 것이 좋습니다. –

관련 문제