2016-11-18 1 views
1

나는 파이썬 문을 작성하여 SQL 테이블이 존재하는지 여부를 확인하는 방법을 알고 싶다.파이썬 문을 사용하여 SQL 테이블이 존재하는지 확인하는 방법.

테이블이 존재하면 데이터를 테이블에 삽입하고, 그렇지 않으면 테이블을 생성합니다.

테이블 이름은

db = MySQLdb.connect("localhost","root","123","test") 
cursor = db.cursor() 

sql="""CREATE TABLE resulttable (id INTEGER NOT NULL PRIMARY KEY AUTO_INCREMENT, writerName CHAR(20) NOT NULL, matchWords LONGTEXT, matchMagazine LONGTEXT, matchNews LONGTEXT)""" 
cursor.execute(sql) 
db.close() 

는 어떻게 확인 부분을 수행하는 "resulttable"입니까 ??

나는이 문을 추가,하지만 난 오류가있어 :

sql="""CREATE TABLE IF NOT EXISTS resulttable (id INTEGER NOT NULL PRIMARY KEY AUTO_INCREMENT, writerName CHAR(20) NOT NULL, matchWords LONGTEXT, matchMagazine LONGTEXT, matchNews LONGTEXT)""" 
    cursor.execute(sql) 
    db.close() 

오류는 다음과 같습니다 경고 : 테이블 'resulttable'이미 cursor.execute (SQL)

+0

을 왜 확인 : http://dev.mysql.com/doc/refman/5.0/en/information-schema.html

SELECT * FROM information_schema.tables WHERE table_name = 'YOUR TABLE' 

는 다음과 같은 것을 수행하여 코드에이 뷰를 적용 할 수 있습니다 IF NOT EXISTS를 추가 하시겠습니까? –

+0

@LFJ, 오류가 발생했습니다. _mysql_exceptions.ProgrammingError : (1113, '테이블에 적어도 하나의 컬럼이 있어야합니다') – dd90p

+0

'sql = "" "처럼 CREATE TABLE이 존재하지 않으면 컬럼을 정의하지 않았습니다. resulttable (ID INTEGER NOT NULL PRIMARY KEY AUTO_INCREMENT, ...... "" "' –

답변

1

사용을 "테이블 존재 "정보 스키마 뷰. 어쨌든 존재하는 경우 표를 확인하려면

def checkTableExists(dbcon, tablename): 
    dbcur = dbcon.cursor() 
    dbcur.execute(""" 
     SELECT COUNT(*) 
     FROM information_schema.tables 
     WHERE table_name = '{0}' 
     """.format(tablename.replace('\'', '\'\''))) 
    if dbcur.fetchone()[0] == 1: 
     dbcur.close() 
     return True 

    dbcur.close() 
    return False 
1
db = MySQLdb.connect("localhost","root","123","test") 
cursor = db.cursor() 

sql="""CREATE TABLE IF NOT EXISTS resulttable (id INTEGER NOT NULL PRIMARY KEY AUTO_INCREMENT, writerName CHAR(20) NOT NULL, matchWords LONGTEXT, matchMagazine LONGTEXT, matchNews LONGTEXT)""" 
cursor.execute(sql) 
# add insert staff 
# insert_sql = "inset ..." 
# cursor.execute(sql) 
cursor.close() 
db.close() 

는이 python - how to check if table exists?

관련 문제